首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >struts 2.3.16.1升级,为struts xwork和Spring框架中的TypeMismatchException提供SimpleMessageListenerContainer

struts 2.3.16.1升级,为struts xwork和Spring框架中的TypeMismatchException提供SimpleMessageListenerContainer
EN

Stack Overflow用户
提问于 2014-04-08 04:00:06
回答 2查看 1.3K关注 0票数 2

我已经从struts 2.0升级到2.3.16.1,以获得struts中最新的安全补丁到我的web应用程序中

当我升级部署在tomcat服务器中时,它会产生以下错误:

导致:无法加载配置。-拦截器- jar:file:/C:/Projects/apache-tomcat-7.0.50/webapps/myweb/WEB-INF/lib/struts2-core-2.3.16.1.jar!/struts-default.xml:167:106 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:489) 原因:注册拦截器类org.apache.struts2.interceptor.FileUploadInterceptor -拦截器- jar:file:/C:/Projects/apache-tomcat-7.0.50/webapps/myweb/WEB-INF/lib/struts2-core-2.3.16.1.jar!/struts-default.xml:167:106时捕获异常 导致: org.springframework.beans.TypeMismatchException:未能将org.springframework.jms.listener.SimpleMessageListenerContainer类型的属性值转换为属性“容器”的必需类型com.opensymphony.xwork2.inject.Container;嵌套异常为java.lang.IllegalArgumentException:无法将org.springframework.jms.listener.SimpleMessageListenerContainer类型的值转换为属性“容器”的必需类型com.opensymphony.xwork2.inject.Container:没有找到匹配的编辑器或转换策略

为了您的方便,我的配置如下

给出了pom.xml中的maven配置

代码语言:javascript
复制
<dependency>
    <groupId>com.opensymphony</groupId>
        <artifactId>xwork</artifactId>
        <version>2.1.3</version>
    </dependency>
<dependency>
    <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.3.16.1</version>
    </dependency>

<dependency>
    <groupId>org.springframework</groupId>
        <artifactId>spring-jms</artifactId>
        <version>3.0.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.3.16.1</version>
</dependency>
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-spring-plugin</artifactId>
    <version>2.3.16.1</version>
</dependency>
<dependency>
    <groupId>ognl</groupId>
    <artifactId>ognl</artifactId>
    <version>3.0.8</version>
</dependency>

弹簧bean.xml的配置

代码语言:javascript
复制
<bean id="container" class="org.springframework.jms.listener.SimpleMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory" />
    <property name="messageListener" ref="listener" />
    <property name="destination" ref="requestQueue" />
</bean>

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="connectionFactory" />
    <property name="defaultDestination" ref="requestQueue" />
</bean>

<bean id="requestQueue" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="MYEMAILQUEUE" />
</bean>
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61616?keepAlive=true" />
</bean>

如果有人能给出一个解决方案或想法来解决这个问题,那就很感激。

EN

回答 2

Stack Overflow用户

发布于 2014-04-08 08:45:20

我想这和错误的图书馆有关。

仔细检查一下Struts2项目依赖关系

代码语言:javascript
复制
<dependency>
    <groupId>com.opensymphony</groupId>
    <artifactId>xwork</artifactId>
    <version>2.1.3</version>
</dependency>

应该是2.3.16.1和其他的.

票数 1
EN

Stack Overflow用户

发布于 2014-04-13 17:04:11

将pom.xml简化为以下内容,并允许Maven解决缺失的依赖关系:

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-spring-plugin</artifactId>
    <version>2.3.16.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22927262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档