系统初步完成后,需要把项目打包放到甲方的服务器上上线以供他们使用。这时候,就需要把自己的程序打包好,然后发布出去。
首先,修改war exploded中的相应设置(平常跑程序时,tomcat中fix的就是这个war exploded):
修改为:
image.png
1.将type修改为archive;
2.输出路径(output directory)可以修改为桌面,这样方便找到war包,当然也可以不改~;
3.勾上“include in project build” 这样在构建(build)项目的时候会自动打包。
然后点击“apply”和“ok”.
然后开始打包:
image.png
选择:
image.png
这样就可以在你的output directory(我的是在桌面)下找到打包好的.war文件。war包文件可以修改名称,最好不要有空格。
然后将war包文件传到服务器上(我用的是teamviewer连接的自己的电脑和服务器主机),最好先将服务器的tomcat停止,然后将war包拷贝到服务器的tomcat->webapps下面,启动tomcat,会自动解压缩,同目录下出现和war包同名的文件夹,这时候,在服务器访问localhost:8080/**(项目名)*
即可访问项目 。
如上,是一般的操作流程,但是我实际操作的时候!
404 not Found,让人崩溃!
仔细检查后,发现是项目进行跳转后的访问路径上始终少了一个项目名称,但是如果手动加上项目名称就可以访问到相应的页面。(例如,首页是登录页面,跳转到的路径是localhost:8080/admin/login,这样是404,但是如果手动输入localhost:8080/项目名/admin/login就可访问到登录页面,然而,点击进行登录的时候也是不成功的,因为登录跳转的方法也少了一个项目名。)
多种尝试后,终于攻破难关,解决方法:
1.在tomcat的安装目录下的conf文件夹中找到server.xml文件:
C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.82\conf\server.xml
,在其中的<Host>...</Host>标签内加上:
<Context docBase="C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.82\webapps\项目文件夹名" path="/" reloadable="true" />
这样设置后,访问时可以不写项目名,直接用:localhost:8080/
来访问。
网上基本都是这种方法,但是我尝试了,还是不行,这就让人很绝望了!!!
2.这一点是自己摸索出来的,虽然还没弄明白原因,但是亲测有效!
image.png打包的时候,可以看到有个META-INF文件夹下.MF文件,不知道这个文件是做什么的,不过在项目刚从git上拉去下来的时候,一般是没有的,而且看这个文件的存放位置是在项目的target文件夹下,个人推断这个文件和tomcat构建文件有关,事实就是,打包后(或者打包前)把这个文件夹及其下的.MF文件删除掉就可以了!
war包被tomcat解压后的文件夹中删掉MET-INF文件夹.png
通过上述两个步骤,重新启动tomcat,成功实现服务器的部署!
服务器再设置一下外网访问(开放端口即可,方法自行根据系统百度,百度上这个还是挺靠谱的),就可以实现真正的网站发布了!
网友评论