【问题标题】:Eclipse + tomcat - ClassNotFound exception on deployEclipse + tomcat - 部署时出现 ClassNotFound 异常
【发布时间】:2012-10-03 15:54:05
【问题描述】:

我遇到了一个奇怪的 Eclipse 问题。

我有一个包含 CXF、hibernate 和 spring 的多模块 maven 项目。如果我采用 maven 包后产生的战争,并在 tomcat 7 上手动部署它 - 一切正常。但是,如果我尝试使用 eclipse (Servers -> 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>

谁能帮帮我?

伊多布

【问题讨论】:

    标签: java tomcat tomcat7


    【解决方案1】:

    如果您同时安装了Maven Eclipse PluginMaven WTP Plugin,这是自动的。如果您没有安装这些,请继续安装它们,然后在 Eclipse 重新启动后右键单击项目并执行 Maven > Update project...。这将在内部更改项目配置,以便将 Maven 依赖项复制到部署目标上的 /WEB-INF/lib 文件夹中。

    如果您不想使用这些插件中的任何一个,那么您必须转到 Project properties > Deployment Assembly 配置并手动添加您的依赖项,但同样,这是完成的由这些插件自动生成。

    【讨论】:

    • 哦,多么愚蠢的错误。我确定我安装了 m2e wtp 插件。糟糕...谢谢
    • 将 Spring 添加到我的 Eclipse Web 项目后,我现在遇到了同样的问题,现在无法再在 Eclipse 中运行 tomcat 以利用调试和快速重新部署功能。无法弄清楚如何解决它。上述步骤无效。还有其他想法吗? -- 干杯。
    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 2013-01-05
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 2015-12-20
    相关资源
    最近更新 更多