xwork和xwork-core的冲突
问题描述:
我一直在尝试将Struts 2与零配置,Spring,Hibernate和Maven集成。xwork和xwork-core的冲突
但是,我认为必须有一些东西,我在集成的思念,它必须与Maven的Pom.xml
的配置:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.1.8.1</version>
</dependency>
<!-- Struts 2 + Spring plugins -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.1.8.1</version>
</dependency>
<!-- MySQL database driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
<!-- Spring framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>2.5.6</version>
</dependency>
<!-- Hibernate core -->
<dependency>
<groupId>asm</groupId>
<artifactId>asm-all</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.7.Final</version>
</dependency>
<!-- Hibernate core library dependency start -->
<!-- Hibernate core library dependency end -->
<!-- Hibernate query library dependency start -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.1.8.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>
,当我使用此配置它给了我一个错误
java.lang.NoSuchMethodError: com.opensymphony.xwork2.util.finder.UrlSet.<init>(Lcom/opensymphony/xwork2/util/finder/ClassLoaderInterface;Ljava/util/Set;)V
而不是OpenSymphony的XWork的我libaray使用
<dependency>
<groupId>org.apache.struts.xwork</groupId>
<artifactId>xwork-core</artifactId>
<version>2.3.8</version>
</dependency>
依赖
它将引发我此异常
Caused by: Unable to load configuration. - [unknown location]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
答
当您升级Struts2的版本,你必须更新库需要您的应用程序到目标版本。 Struts2的每个发行版都提供了lib
文件夹中与发行版本兼容的相应库集。如果您使用maven来解析并获取依赖关系,则应该考虑工件struts2-core
。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.8</version>
</dependency>
将取回了这件神器所有需要的依赖,其他的依赖,比如插件,你需要单独添加。使用针对插件的相同版本。例如添加一个约定插件使用
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.3.8</version>
</dependency>
我选择2.3.8目标版本号,但它可能不兼容与其他的特征,即Hibernate和Spring哪些版本需要通过添加相应的单独升级工件到依赖关系。
最后也是最耗时的是对项目源代码的更改,根据更新的DTD,API更改和修订弃用更新配置文件。为此,请考虑阅读release notes。
+0
你可以upvote这个答案。 –
查看[迁移指南](http://struts.apache.org/release/2.3.x/docs/migration-guide.html) –
在那里看到什么? – user2607985
你不能使用任意版本的xwork;请显示mvn依赖项的输出:没有xwork的不正确版本。 –