Mule ESB - lib是否覆盖任何应用程序库

时间:2012-07-26 15:08:00

标签: spring spring-security mule wss4j

我使用Mule Studio 3.2.1开发了Mule应用程序。在该应用程序中,我使用org.springframework.ws.client.core.WebServiceTemplate将Webservice请求发送到另一个应用程序。 我使用了以下配置

 <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>

我使用了

的Maven依赖
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-security</artifactId>
        <version>2.1.0.RELEASE</version>
    </dependency>

这使用wss4j-1.6.5.jar作为依赖项。 现在,当我在Mule 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

现在,Mule 3.2.0的lib / opt目录附带了wss4j-1.5.8-osgi.jar,WSSecurityutil上的方法签名是public static int decodeAction(String action,Vector actions) 而那个尝试过的是 decodeAction(Ljava / lang / String; Ljava / util / List;),它存在于wss4j.1.6.5中

我的问题是,即使我的应用程序中包含wss4j-1.6.5.jar,为什么类加载器仍然在尝试使用mule / lib / opt中的那个。应用程序中的一个不能覆盖优先权吗? 如果没有,有办法让它以这种方式工作

1 个答案:

答案 0 :(得分:0)

确定使用mule-deploy.properties中的以下配置帮助 loader.override = -org.apache.ws.security.util.WSSecurityUtil REF http://www.mulesoft.org/documentation/display/MULE3USER/Classloader+Control+in+Mule

但仍然存在大量问题,即在Mule Studio中构建的jar作为插件,然后尝试在独立的Mule中进行部署。将在另一个帖子中创建这类问题的各种列表。