Pregunta

He usado Mule Studio 3.2.1 para desarrollar una aplicación de mula. Dentro de esa aplicación, he usado org.springframework.ws.client.core.webservicetemplate para enviar una solicitud de servicio web a otra aplicación. He usado la siguiente configuración

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

He usado la dependencia de Maven de

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

Esto utiliza WSS4J-1.6.5.jar como dependencia. Ahora, cuando implemento la aplicación en Mule 3.2.0, lanza el siguiente error

  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

Ahora, el Directorio de LIB / OPT OF MULE 3.2.0 viene con WSS4J-1.5.8-OSGI.jar para el cual la firma del método en WSSECURITYUTIL es la decodorrición del INT estática pública (acción de cadena, acciones vectoriales) Mientras que el que ha sido intentado es Decodeaction (LJAVA / LANG / STRING; LJAVA / UTIL / LISTA;) que está presente en WSS4J.1.6.5

Mi pregunta es incluso si mi aplicación tiene el WSS4J-1.6.5.jar en ella, ¿por qué el cargador de clases sigue intentando usar el en Mule / lib / opt? ¿En caso de que el de la aplicación no anule la precedencia? Si no, hay una manera de hacerlo funcionar de esa manera

¿Fue útil?

Solución

OK utilizando la siguiente configuración en mule-deploy.properties ayudados carger.override= -org.apache.ws.security.util.wssecurityutil árbitro http://www.mulesoft.org/documentation/display/mule3user/ Classloader + Control + in + mula

PERO ABAJO CARGA DE CUESTIONES CON FASHIONES QUE VENIENDO ARRIBA EN MULE Studio como complementos y luego intentando desplegar en Mule Standalone.Creará una lista surtida de tales problemas en otro hilo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top