Domanda

Ho usato Mule Studio 3.2.1 per sviluppare un'applicazione mulo. All'interno di tale applicazione ho usato org.springFramework.ws.Client.core.WebServiceTemplate per inviare una richiesta di WebService a un'altra applicazione. Ho usato la seguente configurazione

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

Ho usato Maven dipendenza da

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

Questo utilizza WSS4J-1.6.5.jar come dipendenza. Ora quando distributo l'applicazione in mule 3.2.0 genera il seguente errore

  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
.

Ora la directory Lib / Opt di Mule 3.2.0 viene fornita con WSS4J-1.5.8-OSGI.JAR per la quale la firma del metodo su WSSecurityUTIL è decodifica int statica pubblica (Azione di stringa, Azioni vettoriali) Mentre quello che è stato tentato è Decodeation (ljava / lang / stringa; ljava / util / list;) che è presente in WSS4J.1.6.5

La mia domanda è anche se la mia app ha il WSS4J-1.6.5.jar in esso perché il ClassLoader sta ancora cercando di usare quello in mulo / lib / opt. Dovrebbe quello nell'app non override di prendere la precedenza? In caso contrario, c'è un modo per farlo funzionare in questo modo

È stato utile?

Soluzione

OK usando la seguente configurazione in Mule-deploy.properties aiutato caricatore.override= -org.apache.ws.security.util.wssecurityUTIL. ref. http://www.mulesoft.org/documentation/display/mule3user/ ClassLoader + Control + In + Mule

Ma ancora un sacco di problemi con vasi che vengono costruiti in Mule Studio come plugin e quindi tentando di implementare in mulo standalone.Creerà un elenco assortito di tali problemi in un altro filo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top