我在 Eclipse 中遇到了一个奇怪的问题。
我有一个包含 CXF、hibernate 和 spring 的多模块 Maven 项目。如果我将 maven 打包后生成的 war 并手动部署在 tomcat 7 上 - 一切正常。但是如果我尝试使用 eclipse(服务器 -> tomcat),我会收到以下错误:
SEVERE: Exception starting filter datasourceFilter
java.lang.ClassNotFoundException: com.X.X.X.X.filter.DataSourceFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
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.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:256)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
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:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
值得一提的是,我尝试与eclipse集成的tomcat是同一个独立的tomcat,我手动部署了war。 我使用 eclipse Juno..如果重要的话..
在我的 web.xml 上:
<filter>
<filter-name>datasourceFilter</filter-name>
<filter-class>com.X.X.X.X.filter.DataSourceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>datasourceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
有人可以帮助我吗?
伊多布
最佳答案
如果您已安装 Maven Eclipse Plugin和 Maven WTP Plugin这是自动的。如果您没有安装这些,请继续安装它们,然后在 Eclipse 重新启动后右键单击该项目并执行 Maven > 更新项目...。这将在内部更改项目配置,以便将 Maven 依赖项复制到部署目标上的 /WEB-INF/lib
文件夹。
如果您不想使用任何这些插件,则必须转到项目属性>部署程序集配置并手动添加依赖项,但同样,这已完成由这些插件自动执行。
关于java - Eclipse + tomcat - 部署时出现 ClassNotFound 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12712224/