首页 > 解决方案 > Spring ws 升级 java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;)

问题描述

我正在将一个项目从 spring 2.5 升级到 spring 5。我能够在 JDK8 上使用 spring 3.2.9 成功运行该项目。正在使用的 spring ws 是 2.0.4 和 wss4j-1.5.8,它在 spring 3.2.9 上运行良好。

我尝试将 spring ws 版本更改为 2.1.4 并且它不再运行。堆栈跟踪似乎表明版本存在问题,但除了 spring ws 版本是原因之外,我找不到问题。当我在网上浏览了一些线程时,我发现 spring ws 2.1.4 可以与 spring 3.2.9 和 wss4j 1.5.8 一起使用。以下是与问题对应的堆栈跟踪信息:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accessDeniedController' defined in file [...\AccessDeniedController.class]: Unsatisfied dependency expressed through constructor argument with index 1 of type [com.pro.pro1.service.WManager]: : Error creating bean with name 'WManager' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Cannot resolve reference to bean 'statusupdateWebServiceTemplate' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'statusupdateWebServiceTemplate' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Cannot resolve reference to bean 'wsClientSecurityInterceptor' while setting bean property 'interceptors' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wsClientSecurityInterceptor' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'securementActions' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;)I; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wpsManager' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Cannot resolve reference to bean 'statusupdateWebServiceTemplate' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'statusupdateWebServiceTemplate' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Cannot resolve reference to bean 'wsClientSecurityInterceptor' while setting bean property 'interceptors' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wsClientSecurityInterceptor' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'securementActions' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;)I
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:752)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:193)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1075)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:979)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:633)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4685)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5146)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wpsManager' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Cannot resolve reference to bean 'statusupdateWebServiceTemplate' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'statusupdateWebServiceTemplate' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Cannot resolve reference to bean 'wsClientSecurityInterceptor' while setting bean property 'interceptors' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wsClientSecurityInterceptor' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'securementActions' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;)I
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:334)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:651)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:145)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1075)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:979)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:917)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:860)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:775)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:817)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:745)
    ... 45 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'statusupdateWebServiceTemplate' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Cannot resolve reference to bean 'wsClientSecurityInterceptor' while setting bean property 'interceptors' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wsClientSecurityInterceptor' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'securementActions' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;)I
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:334)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:358)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1417)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1158)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
    ... 61 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wsClientSecurityInterceptor' defined in ServletContext resource [/WEB-INF/classes/WContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'securementActions' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;)I
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1453)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1158)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
    ... 73 more
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'securementActions' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;)I
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:101)
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1450)
    ... 81 more

项目依赖:

激活-1.1.1.jar

activemq-all-5.5.0.jar

antlr-2.7.6.jar

aopalliance.jar

apache-mime4j-0.6.jar

asm.jar

aspectjweaver-1.5.4.jar

axiom-api-1.2.9.jar

axiom-impl-1.2.9.jar

轴蚂蚁.jar

轴.jar

bcprov-jdk16-143.jar

bsf.jar

c3p0-0.9.1.2.jar

cglib-2.1.3.jar

chartengineapi.jar

chartitemapi.jar

chilkat.jar

com.ibm.icu_4.0.1.v20090822.jar

commons-beanutils-1.7.jar

commons-cli-1.0.jar

commons-codec-1.3.jar

commons-collections-3.2.1.jar

commons-dbcp-1.2.2.jar

commons-digester-1.8.jar

commons-discovery-0.2.jar

commons-fileupload-1.2.jar

commons-httpclient-3.1.0.jar

commons-httpclient-4.0.jar

commons-io-1.4.jar

commons-lang-2.4.jar

commons-logging-1.1.1.jar

commons-net-2.0.jar

commons-pool-1.4.jar

commons-vfs-2.0.jar

coreapi.jar

crosstabcoreapi.jar

数据适配器api.jar

数据聚合api.jar

数据提取.jar

dom4j-1.6.1.jar

dteapi.jar

ehcache-core-1.7.2.jar

发射器配置.jar

engineapi.jar

ezmorph-1.0.4.jar

长笛.jar

freemarker-2.3.29.jar

fscontext.jar

grtl.jar

hibernate-jpa-2.0-api-1.0.0.Final.jar

hibernate3.jar

httpcore-4.0.1.jar

httpmime-4.0.jar

javassist-3.9.0.GA.jar

javax.wsdl_1.5.1.v200806030408.jar

jaxb-impl-2.2.1.jar

jaxrpc.jar

jcl-over-slf4j-1.5.11.jar

jcommon-1.0.9.jar

jdom-1.1.jar

jfreechart-1.0.6.jar

jms.jar

jndi.jar

jruby.jar

js.jar

jsch-0.1.41.jar

json-lib-2.2.1-jdk15.jar

jta.jar

jtds-1.2.2.jar

log4j-1.2.9.jar

邮件1.3.2.jar

模型api.jar

modelodaapi.jar

odadesignapi.jar

ooxml-schemas-1.0.jar

org.apache.commons.codec_1.3.0.v20080530-1600.jar

org.eclipse.emf.common_2.5.0.v200906151043.jar

org.eclipse.emf.ecore.xmi_2.5.0.v200906151043.jar

org.eclipse.emf.ecore_2.5.0.v200906151043.jar

org.w3c.css.sac_1.3.0.v200805290154.jar

oro-2.0.8.jar

oscore-2.2.5.jar

osworkflow-2.8.0.jar

poi-3.5.jar

poi-ooxml-3.5.jar

postgresql-8.3-603.jdbc3.jar

propertyset-1.4.jar

providerutil.jar

石英-1.6.0.jar

saaj.jar

脚本api.jar

sftp.jar

slf4j-api-1.5.11.jar

slf4j-log4j12-1.5.10.jar

spring-aop-3.2.9.RELEASE.jar

spring-aspects-3.2.9.RELEASE.jar

spring-beans-3.2.9.RELEASE.jar

spring-context-3.2.9.RELEASE.jar

spring-context-support-3.2.9.RELEASE.jar

spring-core-3.2.9.RELEASE.jar

spring-expression-3.2.9.RELEASE.jar

spring-instrument-3.2.9.RELEASE.jar

spring-jdbc-3.2.9.RELEASE.jar

spring-jms-3.2.9.RELEASE.jar

spring-orm-3.2.9.RELEASE.jar

spring-oxm-3.2.9.RELEASE.jar

spring-security-config-3.0.1.jar

spring-security-core-3.0.1.jar

spring-security-web-3.0.1.jar

spring-tx-3.2.9.RELEASE.jar

spring-web-3.2.9.RELEASE.jar

spring-webmvc-3.2.9.RELEASE.jar

spring-ws-2.1.4.RELEASE-all.jar

速度-1.5.jar

速度工具-view-1.3.jar

viewservlets.jar

webservices-rt-2.1-b16.jar

wss4j-1.5.8.jar

xmlbeans-2.3.0.jar

xmlsec-1.4.3.jar

zehon_file_transfer-1.1.6.jar

标签: javaspringspring-wsspring-3wss4j

解决方案


推荐阅读