Eclipse下的web项目部署到tomcat服务器没有启动的解决方案
最近使用maven构建项目,在eclipse下开发,偶尔会出现项目部署到eclipse配置的tomcat下无法启动的情况
tomcat是启动了,有日志,可是通过浏览器在地址里输入项目信息,却无法访问,总报404-找不到访问数据的错误,在tomcat启动日志中查看原因,发现以下警告,因为跟这个异常有关,其实一点关系都没有。
警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:mbs' did not find a matching property.
上次出现此问题我还写了篇文章【 tomcat 启动警告导致项目无法启动处 'source' to 'org.eclipse.jst.jee.server:xxx' did not find a matching property.】
解决方案在百度上查找了半天,也没有解决,最后自己只好一点点的排查了。
开始看tomcat的日志,发现有条警告,根据警告的内容,按上次的方法改了也不好使,最后没有办法,求人不如求己,耐着性子看吧。
信息: Deploying configuration descriptor E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\mbs.xml七月 11, 2015 10:05:24 上午 org.apache.catalina.startup.SetContextPropertiesRule begin警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:mbs' did not find a matching property.七月 11, 2015 10:05:27 上午 org.apache.catalina.startup.TldConfig execute
首先,搞清楚eclipse和tomcat部署应用的流程和路径:ecliplse中的tomcat在默认启动方式时,是通过配置文件的形式调用tomcat来启动的,在tomcat安装目录是看不到我门的项目的,默认在工作空间.metadata\.plugins\org.eclipse.wst.server.core\tmp0\下创建一个文件【D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\project.xml】然后在这个文件下tmp0目录下,存放部署的项目名称,具体配置内容可以双击Servers选项卡中的Tomcat,查看Server Locations菜单,看到【Server path】就是服务配置路径,【Deploy path】就是项目存放的路径,在这个路径下就可以看到我们的项目了。
进入项目后,你会发现项目的完整目录,等等,好像有点不对头,貌似少了点文件,让我去其他项目目录看看,不比不知道,一比吓一跳,人家那么多,你勒么少,肯定不行拉,最熟悉的【META-INF】目录都没有,肯定有问题
问题在那里呢?让我吃根辣条想想,eclipse中右键单及项目,会弹出项目的配置信息,在【Web Deployment Assembly】网络部署组件中,发现【/webapp】中的内容是【/src/main/webapp】,可是我的项目中通过配置,我的【/webapp】目录在项目根目录下,如果按照【/src/main/webapp】这个目录去找,部署的时候肯定找不到
是不是问题出在这里呢?试试看吧,删除【/src/main/webapp】,点击Add添加一个然后在【New Directive Type】目录看到,main下面的【/src/main/webapp】是没有【WEB-INF】目录的,根目录下【/webapp】的才有,果断添加【/webapp】,然后删除原来的【/src/main/webapp】
好了,见证奇迹的时刻到了,启动tomcat,查看console中的监控日志,惊喜出现了,项目的日志打印了,浏览器里输入的请求页面也找到了,问题就这么解决了。
总结:遇到问题就耐着性子从原理分析问题原因,从启动、配置、运行,一点点的找,问题就是这么解决的。
信息: Deploying configuration descriptor E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\mbs.xml七月 11, 2015 10:05:24 上午 org.apache.catalina.startup.SetContextPropertiesRule begin警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:mbs' did not find a matching property.七月 11, 2015 10:05:27 上午 org.apache.catalina.startup.TldConfig execute