0

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

 <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) 而尝试过的方法是wss4j.1.6.5 中存在的 decodeAction(Ljava/lang/String;Ljava/util/List;)

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

4

1 回答 1

0

好的,在 mule-deploy.properties 中使用以下配置有助于 loader.override=-org.apache.ws.security.util.WSSecurityUtil ref http://www.mulesoft.org/documentation/display/MULE3USER/Classloader+Control+in +骡子

但是在 Mule Studio 中作为插件构建的 jars 仍然存在很多问题,然后尝试在独立的 Mule 中进行部署。将在另一个线程中创建此类问题的分类列表。

于 2012-07-27T10:58:08.347 回答