Eclipse+Maven+WTP+Tomcat不能Run On Server其中一个原因

less than 1 minute read

使用Maven有段时间了,自己DIY项目后遇到了一个问题,项目不能使用WTP提供的Run On Server功能……

1、问题描述

配置好项目,配置好Tomcat6,加入项目到Tomcat中然后运行Tomcat没有加载项目的日志信息

2、环境配置

  • Eclipse With Java EE + WTP + Maven
  • WTP的组件配置.settings/org.eclipse.wst.common.component


  

    		
        
        
        

        
        
        
        

  

说明一下wtp的默认规则,org.eclipse.wst.common.component规定deploy-path为斜杠(/)并且是包含WEB-INF的wb-resource要在第一位,所以我在这里犯错了,看上面的配置就清楚了

3、问题原因

我一向喜欢“工欲善其事必先利其器”;因为基于Maven的WTP工程默认只有一个

看截图
所以默认的.settings/org.eclipse.wst.common.component的配置如下:



  

    		
        
        
        

        

  

现在比较一下就比较清楚了,原因是我DIY的配置多了3行,所以我DIY的配置如下:

还有另外一个原因就是因为我的通过m2eclipse插件提供的SCM功能checkout项目,原本DIY配置好的项目被eclipse改动了,从svn信息看得出来,所以导致了问题的发生

4、问题关键所在

保证项目的.settings/org.eclipse.wst.common.component文件中的

在以deploy-path="/"的wb-resource排在第一位,因为tomcat启动时要读取WEB-INF/web.xml,如果不在第一位找不到当然服务不能启动

5、问题解决

  • 根据上面说的保证webapp的位置即可,最终配置如下,可以保留DIY结果又可以启动服务:
    
    
      
    
        		
            
            
            
            
            
            
            
    
      
    
    
  • 或者不要使用m2eclipse提供的SCM检出功能,直接用乌龟checkout,这样就不会因为eclipse自动设置修改.settings/org.eclipse.wst.common.component配置了