java web工程发布以及解决tomcat闪退

1、tomcat闪退

1.1 环境变量错误

  startup.bat最后假如PAUSE进入调试状态,双击startup.bat,可以看到错误,根据错误提示设置相应的环境变量,JAVA_HOME等。

1.2 eclispe设置问题

  当eclispe server locations选项为第二项时,发布项目会修改tomcat下面的server.xml文件,如果中间存在手动清理发布目录会导致server.xml中注册的web服务找不到相关文件而导致闪退;也就是说,闪退也可以查看server.xml,是不是配置错误导致的。

2、eclipse发布web工程

2.1 将server locations设置为可配状态

  右键server,选择Add and Remove...,然后选择Remove all,确定。

  右键server,选择clean。

    

2.2 配置server locations

  选项如图所示

    

  经过a步骤可以使得选项成可选状态,其中:

  第一项为使用eclipse本地配置metadata,并不会修改tomcat配置,而是部署调试的web项目在eclipse工作空间,调用tomcat组件实现启动web服务。

  第二项为使用tomcat安装目录,并且会修改server.xml文件

  第三项为使用特定目录

  其他选项:server path为tomcat根目录,Deploy为发布目录。

  如果上图选择第一项, 发布的路径是D:eclipseworkspace.metadata.pluginsorg.eclipse.wst.server.core mp1wtpwebapps,并且调用tomcat组件,调试本地项目,tomcat webapps下的项目并不会启动,如果访问localhost:8080会产生404错误。

  如果选择第二个选项,会在tomcat目录下建立一个wtpwebapps文件夹,并且会把web工程生成的产物拷贝到该目录下, 同时会在tomcat的conf目录下的server.xml中<host>节点注册一个web工程,如图:

     

  docBase为web工程文件,可为mavern target下的相应工程名的文件夹产物,也可以为war文件,path则为url的地址。此时,tomcat中部署的其他web服务也能正常访问(不推荐这种方法)。如果中间存在错误,可能导致tomcat独立启动时闪退。

  第三个选项暂时没用过,应该是可以自定义发布的路径。

3、tomcat发布工程

3.1 发布到webapps目录下

  将工程名产物文件夹或者导出为war包放到目录下即可,war在tomcat会多一个步骤,就是解压为和产物文件夹一样的文件夹。

3.2 发布到其他路径(如tomcat下的mydir)

  将相应工程文件夹或者war拷贝到tomcat下的mydir下

  修改conf下的server,在host节点下增加context节点,注册web服务。

   

  path="" 为部署后运行的url路径,docBase为你的war的文件名。 第一次运行的时候,tomcat会自动解压war,生成path指定名称的网站。

  不管是war文件还是web工程产物文件夹,最终都会被tomcat拷贝到webapps下面,只是war是解压之后拷贝。

 4、发布到tomcat下是war好还是产物文件夹好?

  个人认为:打成war包的好处是不会缺少目录,并且只管理好一个发布文件就好。

原文地址:https://www.cnblogs.com/ChinaHook/p/5251435.html