我用骡子工作室3.2.1开发骡子应用。在该应用程序我已经使用org.springframework.ws.client.core.WebServiceTemplate发送web服务请求到另一个应用程序。 我已经使用以下配置骡子ESB - 确实的lib覆盖任何应用程序库
<bean id="myWsTemplate" clsass="org.springframework.ws.client.core.WebServiceTemplate">
<constructor-arg ref="messageFactory" />
<property name="defaultUri" value="${my.soap.endpoint}" />
<property name="interceptors">
<list>
<ref bean="acqSecurityInterceptor" />
</list>
</property>
<bean id="acqSecurityInterceptor" class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="validationActions" value="NoSecurity"/>
<property name="securementActions" value="NoSecurity" />
</bean>
我已经使用的
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-security</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
Maven的依赖性这使用WSS4J-1.6.5.jar作为依赖。 现在,当我部署骡子应用3.2.0它引发以下错误
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'validationActions' threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.ws.security.util.WSSecurityUtil.decodeAction(Ljava/lang/String;Ljava/util/List;)I
PropertyAccessException 2: 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
现在骡子3.2.0的lib/opt目录自带WSS4J-1.5.8-osgi.jar为其在上WSSecurityutil方法签名是公共静态INT decodeAction(字符串动作,矢量动作) 而已经尝试所述一个是 decodeAction(Ljava /郎/字符串; Ljava/util的/列表),其存在于wss4j.1.6.5
我的问题是,即使我的应用程序有WSS4J-1.6.5.jar在它为什么是类加载器仍试图使用一个在骡子/ lib目录/ opt中。应用程序中的应用程序是否不会优先考虑? 如果不是有没有办法得到它的工作方式