我目前使用的是 Tomcat 7.0.21、JDK1.6.29 和 WTP 3.3.1(在 Eclipse Indigo 上运行。)我不确定我运行的是哪个版本的 M2E。当我在 Eclipse 之外执行 mvn 安装和运行 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/com 似乎类加载器和文件路径解析之间存在冲突?
最佳答案
不幸的是,这是 Eclipse WTP 和 Tomcat 7 之间的已知错误。以下是相关的 Bugzilla 条目:
Tomcat 7 + Serve Modules without publishing fails to find classpath resources
显然修复是已知的,只是还没有应用。我想这不是一个常见的用例,因为否则会有更多人要求修复它。太糟糕了,这是一个非常有用的功能。
关于eclipse - 未发布的 WTP 部署失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675034/