我目前正在使用Tomcat 7.0.21,JDK1.6.29和WTP 3.3.1(在Eclipse Indigo上运行。)我不确定我正在运行哪个版本的M2E。当我执行mvn安装并在Eclipse之外运行Tomcat,或通过WTP部署到服务器并且未选中“未发布服务模块”时,我的项目构建和部署正常。
但是,当我通过WTP启动服务器并选中no-publish框时,Tomcat将无法成功启动,但失败的是:
Dec 29, 2011 4:09:39 PM org.apache.catalina.startup.ContextConfig processAnnotationsJndi SEVERE: Unable to process JNDI URL [jndi:/localhost/plutom-ws/WEB-INF/classes] for annotations java.io.FileNotFoundException: jndi:/localhost/plutom-ws/WEB-INF/classes at org.apache.naming.resources.DirContextURLConnection.list(DirContextURLConnection.java:463) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1901) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1905) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1828) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1295)
如果我手动创建classes目录,那么就会抱怨classes / com似乎某个类加载器和文件路径之间存在冲突?
答案 0 :(得分:3)
遗憾的是,这是Eclipse WTP和Tomcat 7之间的已知错误。以下是相关的Bugzilla条目:
Tomcat 7 + Serve Modules without publishing fails to find classpath resources
显然修复已知,它尚未应用。我想这不是一个常见的用例,因为否则会有更多人要求修复它。它太糟糕了,它是一个非常有用的功能。