MULE ESB - ли lib переопределяет любую библиотеку приложений

StackOverflow https://stackoverflow.com//questions/11672371

Вопрос

Я использовал MULE Studio 3.2.1 для разработки приложения MULE. В этом приложении я использовал org.springframework.ws.client.core.WebsebicTemplate для отправки запроса 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 of

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

Теперь каталог lib / opt of mule 3.2.0 поставляется с wss4j-1.5.8-Osgi.jar, для которого метод подпись на WSSEcityutil является общедоступным статическим int декодемасизацией (строковые действия, векторные действия) в то время как тот, который пытался, это Декодирование (ljava / lang / string; ljava / util / list;) который присутствует в WSS4J.1.6.5

Мой вопрос, даже если у моего приложения есть WSS4J-1.6.5.jar в нем, почему класс все еще пытается использовать один в Mule / lib / opt. Должен ли тот, который в приложении не переопределяет принять приоритет? Если нет, есть ли способ получить его работать таким образом

Это было полезно?

Решение

ОК, используя следующий конфигурацию в mule-deploy.properties помогло loader.override= -Org.apache.ws.security.util.wssecurityutil. реф http://www.mulesoft.org/documentation/display/mule3user/ ClassLoader + Control + In + Mule

Но все равно нагрузки проблем с банками, которые наступают встроенные в Mule Studio в качестве плагинов, а затем пытаются развернуть в автономном муле.Созданете ассортитивный список таких вопросов в другом потоке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top