【问题标题】:spring3 build errorspring3构建错误
【发布时间】:2013-02-03 05:27:53
【问题描述】:

我有一个使用 struts2 和 spring 3 的 Web 应用程序。为了配置 spring,我使用 eclipse 和 tomcat 中的构建路径在项目中添加了所需的库。 我也在 web.xml 中添加了侦听器,但是当我想运行应用程序时出现此错误: 严重:配置类 org.springframework.web.context.ContextLoaderListener 的应用程序侦听器时出错 java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener 我用谷歌搜索了太多,但什么也没发生.. 有人告诉我一定要在应用程序库和 tomacat 中添加 spring-web.jar,但没有任何变化。 请帮忙

类路径:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="con"    path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre6">
    <attributes>
        <attribute name="owner.project.facets" value="java"/>
    </attributes>
</classpathentry>
<classpathentry exported="true" kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0">
    <attributes>
        <attribute name="owner.project.facets" value="jst.web"/>
    </attributes>
</classpathentry>
<classpathentry exported="true" kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.USER_LIBRARY/hibernate"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/antlr-2.7.6.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/asm-attrs.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/asm.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/cglib-2.1.3.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/commons-beanutils-1.8.2.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/commons-collections-3.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/commons-collections-3.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/commons-digester-2.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/commons-fileupload-1.2.2.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/commons-logging-1.0.4.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/commons-logging-1.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/commons-logging.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/DateConverter.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/dom4j-1.6.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/ejb3-persistence.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/freemarker-2.3.13.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/groovy-all-1.7.5.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/hibernate-annotations.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/hibernate-commons-annotations.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/hibernate-validator.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/hibernate3.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/hsqldb.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/imaging.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/iText-2.1.7.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/jasperreports-4.5.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/javassist-3.9.0.GA.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/jdt-compiler-3.1.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/jstl-1.2.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/jta-1.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/junit-3.8.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/log4j-1.2.15.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/ocrs12.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/ognl-2.6.11.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/orai18n.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/simplecaptcha-1.1.1.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/slf4j-api-1.5.8.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/slf4j-log4j12-1.5.8.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/sqljdbc4.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/standard.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/struts2-convention-plugin-2.1.6.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/struts2-core-2.1.6.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/struts2-fullhibernatecore-plugin-1.4-GA.jar"/>
<classpathentry exported="true" kind="lib" path="WebContent/WEB-INF/lib/xwork-2.1.2.jar"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.USER_LIBRARY/spring"/>
<classpathentry kind="output" path="WebContent/WEB-INF/classes"/>

【问题讨论】:

  • 听起来您在运行时缺少弹簧罐。你在使用像 maven 这样的构建工具吗?
  • 不,我正在使用 Run as>在 eclipse 中的服务器上运行
  • 能否提供你项目的.classpath文件的内容?
  • 如果可能的话,我可以附上快照。但我认为这是不可能的!
  • 在 Eclipse 中,转到导航器选项卡,单击您的 .classpath 文件,然后复制/粘贴问题中的内容。这是纯文本。

标签: java spring jakarta-ee spring-mvc


【解决方案1】:

我经常遇到这个问题org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException 当 eclipse 不正确地将应用程序发布到 tomcat 服务器时(这经常发生在我一天中第一次启动 eclipse 或在一些更大的 svn checkout 之后)

在我的情况下,它有助于执行一系列操作(并始终等待下一步,直到前一步完成!)

  • 先刷新项目(F5),然后
  • 有一个干净的项目构建 (project/clean),
  • 再次刷新项目 (F5),然后
  • 清理服务器
  • 将项目发布到服务器

【讨论】:

    【解决方案2】:

    我建议使用 maven 而不是手动摆弄 eclipse 类路径,如果您可以这样做的话。以下是您可以遵循的简单步骤:

    mvn archetype:generate -DgroupId=com.test -DartifactId=test -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
    

    这将生成所需的 Maven 项目结构。然后编辑 pom.xml 文件如下。

    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.test</groupId>
      <artifactId>test</artifactId>
      <packaging>war</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>test Maven Webapp</name>
      <url>http://maven.apache.org</url>
      <repositories>
        <repository>
          <id>java.net</id>
          <url>http://download.java.net/maven/2/</url>
        </repository>
      </repositories>
      <dependencies>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>3.0.0.RELEASE</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.struts</groupId>
          <artifactId>struts2-core</artifactId>
          <version>2.1.8</version>
        </dependency>
        <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate</artifactId>
          <version>3.2.7.ga</version>
        </dependency>
        <dependency>
          <groupId>dom4j</groupId>
          <artifactId>dom4j</artifactId>
          <version>1.6.1</version>
        </dependency>
        <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <version>1.1.1</version>
        </dependency>
        <dependency>
          <groupId>commons-collections</groupId>
          <artifactId>commons-collections</artifactId>
          <version>3.2.1</version>
        </dependency>
        <dependency>
          <groupId>cglib</groupId>
          <artifactId>cglib</artifactId>
          <version>2.2</version>
        </dependency>
        <dependency>
          <groupId>antlr</groupId>
          <artifactId>antlr</artifactId>
          <version>2.7.7</version>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <finalName>test</finalName>
      </build>
    </project>
    

    构建项目:

    mvn clean package
    

    并生成eclipse配置源文件:

    mvn eclipse:eclipse -DdownloadSources=true
    

    这些步骤足以创建项目结构,该结构在类路径中具有所需的库并附加了源代码。

    终于可以在Eclipse中导入项目了。

    File > Import > General > Existing project into Workspace > Select the project directory
    

    您可以从http://maven.apache.org/download.cgi下载并安装maven

    【讨论】:

      【解决方案3】:

      我看到你使用 eclipse wtp 插件来运行 web 应用程序,然后你可以在文件系统中找到扩展 web 应用程序,并检查 lib 目录有 spring.jar, 你也可以看到这个My application does not see ContextLoaderListener

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-31
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        • 2017-12-05
        • 1970-01-01
        • 2012-08-02
        相关资源
        最近更新 更多