我已经从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配置
<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的配置
<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>如果有人能给出一个解决方案或想法来解决这个问题,那就很感激。
发布于 2014-04-08 08:45:20
我想这和错误的图书馆有关。
仔细检查一下Struts2项目依赖关系。
这
<dependency>
<groupId>com.opensymphony</groupId>
<artifactId>xwork</artifactId>
<version>2.1.3</version>
</dependency>应该是2.3.16.1和其他的.
发布于 2014-04-13 17:04:11
将pom.xml简化为以下内容,并允许Maven解决缺失的依赖关系:
<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>https://stackoverflow.com/questions/22927262
复制相似问题