1

尝试使用 Maven 在我的应用程序中集成 Struts2 和 Spring。我已将所有依赖项放在与 Spring-web、Spring、Struts2-spring 插件相关的 Pom 文件中

<!-- Spring framework --> 
     <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring</artifactId>
 <type>jar</type>
 <version>2.5.6</version>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-web</artifactId>
 <version>2.5.6</version>
 </dependency>
 <dependency>
 <groupId>org.apache.struts</groupId>
 <artifactId>struts2-spring-plugin</artifactId>
 <version>2.2.3</version>
 </dependency>

我在 Web.xml 文件中包含以下内容,

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    </filter>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> 
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>  

     <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param> 

当我使用 Maven 运行时生成战争文件并且当我在我的服务器(glassfish)中部署我的战争文件时,错误消息显示如下

"Error An error has occurred
Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.NoClassDefFoundError: Could not initialize class org.springframework.web.context.ContextLoader. Please see server.log for more details."

所以任何人都请帮我解决这个问题。

4

1 回答 1

0

ContextLoader 在 Spring-web jar 中。错误是因为找不到此类定义。检查您的 .m2 文件夹中是否存在此依赖项。

如果由于某种原因未自动下载,请使用 mvn install:install 命令手动安装。有关更多可能的解决方案,请参阅Maven Spring Hibernate 项目中的 Jars 问题。

尝试

  1. 做一个 mvn 包,看看 Spring jar 是否在你的战争中

  2. 完成后 mvn eclipse:eclipse ,刷新 eclipse ,清理你的 eclipse 工作区 - project- clean (自动勾选构建)

打开 .classpath 文件并检查类似的条目

或者右键项目-->properties-->java build path-->libraries 看看spring-web jar 有没有。

  1. 打开 .m2 存储库并查看 jar 是否在存储库中 - 如果没有,请安装:安装

  2. 做一个 mvn dependency:tree 并查看 jar 是否出现。

这几乎是我可以建议的

于 2012-01-04T05:50:00.400 回答