我意识到那里有类似的问题,但我不知所措。我有一个 Maven,JSF2 webapp,无论如何都不会在 Eclipse 中的 Tomcat 上运行。我已经尝试过许多人提到的 “部署程序集”技巧和“构建路径技巧”,但都不起作用。
我相信它与C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
. 这个目录模拟了当我将战争部署到同一个 tomcat 实例(包括所有属性文件、xhtml 文件和库)时所部署的内容。唯一的例外是我的战争包含 .class 文件,而源 .java 文件位于 wtpwebapps 中。直接部署到 tomcat 可以正常工作 - 找到并加载了所有 servlet。
在我得到有关 JSF2 安装的答案之前,并不是……当 Tomcat 尝试加载我的自定义 servlet 时,我遇到了错误。例如:
Sep 21, 2012 10:16:27 AM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /webapp threw load() exception
java.lang.ClassNotFoundException: com.webapp.ui.Log4JInitServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:133)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
在上面的堆栈中,Log4JInitServlet 类位于...\wtpwebapps\webapp\WEB-INF\classes\com\webapp\ui\Log4JInitServlet.java
一些细节:
- 日蚀朱诺
- 带有“org.eclipse.jst.web_core.feature 的 WTP 补丁”的 Eclipse WTP 3.4.0
- Maven 3.0.3
- 雄猫 7.0.29
- JSF - MyFaces 2.1.5
- JDK - 1.7.0_05
作为最后的仅供参考,我已经尝试过旧版本的 Eclipse 以及旧版本的 Tomcat(回到 6)。