2014-12-12 3 views
0

Мы используем WSS4JOutInterceptor для подписания исходящего сообщения о мыле из нашего приложения. Мы протестировали приложение на Tomcat без каких-либо проблем, но на Websphere (7) мы продолжаем получать ClassCastException:CXF 2.7.14 + WSS4J + Websphere 7 ClassCastException

java.lang.ClassCastException: org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory incompatible with javax.xml.crypto.dsig.XMLSignatureFactory 
    at javax.xml.crypto.dsig.XMLSignatureFactory.findInstance(XMLSignatureFactory.java:202) 
    at javax.xml.crypto.dsig.XMLSignatureFactory.getInstance(XMLSignatureFactory.java:292) 
    at org.apache.ws.security.message.WSSecSignature.init(WSSecSignature.java:127) 
    at org.apache.ws.security.message.WSSecSignature.<init>(WSSecSignature.java:120) 
    at org.apache.ws.security.action.SignatureAction.execute(SignatureAction.java:45) 
    at org.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:232) 
    at org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.access$200(WSS4JOutInterceptor.java:52) 
    at org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:260) 
    at org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:136) 
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) 
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530) 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) 
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:133) 
    at $Proxy1632.putDataOperation(Unknown Source) 

Я знаю, это обычно означает, что эти два класса загружены с различными загрузчиков классов, но я не могу докажите, что это наш случай.

Наш путь к классам (напечатано консоли администрирования WebSphere) выглядит следующим образом:

file:PATH_TO_WEBAPP_WAR/WEB-INF/classes 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/FastInfoset-1.2.12.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/ISDSClient-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/Jace-1.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/activation-1.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/antlr-2.7.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/aopalliance-1.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/asm-3.3.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/aspectjrt-1.7.4.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/aspectjweaver-1.7.4.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/avalon-framework-api-4.3.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/avalon-framework-impl-4.3.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/backport-util-concurrent-3.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/barbecue-1.5-beta1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-anim-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-awt-util-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-bridge-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-css-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-dom-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-ext-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-extension-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-gvt-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-js-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-parser-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-script-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-svg-dom-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-svggen-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-transcoder-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-util-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/batik-xml-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/bcmail-jdk16-1.45.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/bcprov-jdk16-1.45.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/bctsp-jdk16-1.45.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/c3p0-0.9.1.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cglib-2.2.2.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/classworlds-1.1-alpha-2.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/commons-beanutils-1.9.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/commons-codec-1.9.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/commons-collections-3.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/commons-io-1.3.2.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/commons-io-1.4.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/commons-lang-2.6.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/commons-logging-1.1.3.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/core-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/core-interface-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-api-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-bindings-soap-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-bindings-xml-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-core-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-databinding-jaxb-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-frontend-jaxrs-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-frontend-jaxws-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-frontend-simple-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-rs-security-xml-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-transports-http-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-ws-policy-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cxf-rt-ws-security-2.7.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cz.dalvi.commons.common-0.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cz.dalvi.commons.crypto-0.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/cz.dalvi.commons.xml-0.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/dom4j-1.6.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/ecmcodes-ws-client-2.1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/ehcache-core-2.5.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/filenet-client-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/flexjson-2.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/fontbox-1.8.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/fop-1.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/geronimo-javamail_1.4_spec-1.7.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/gmbal-api-only-3.1.0-b001.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/ha-api-3.1.8.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/hibernate-commons-annotations-4.0.4.Final.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/hibernate-core-4.3.5.Final.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/hibernate-entitymanager-4.3.5.Final.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/iba-commons-core-1.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/iba-commons-util-1.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/ini4j-0.5.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/isds-client-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/isds-proxy-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/istack-commons-runtime-2.16.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jackson-annotations-2.0.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jackson-core-2.0.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jackson-databind-2.0.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jandex-1.1.0.Final.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/javassist-3.18.1-GA.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/javax.annotation-api-1.2-b03.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/javax.mail-1.4.4.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/javax.ws.rs-api-2.0-m10.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/javax.xml.soap-api-1.3.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxb-api-2.2.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxb-core-2.2.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxb-impl-2.2.7-b41.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxb-jxc-2.2.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxb-xjc-2.2.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxp-api-1.4.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxp-ri-1.4.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxws-api-2.1-1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxws-maven-plugin-2.3.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxws-rt-2.2.8-promoted-b146.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxws-spring-1.9.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jaxws-tools-2.2.8.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jboss-logging-3.1.3.GA.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jboss-logging-annotations-1.2.0.Beta1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jboss-transaction-api_1.2_spec-1.0.0.Final.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jcl-over-slf4j-1.7.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jempbox-1.8.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/joda-time-2.3.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jsr181-api-1.0-MR1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jsr250-api-1.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/jstl-1.2.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/liquibase-core-3.3.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/log4j-1.2.17.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/management-api-3.0.0-b012.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-artifact-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-artifact-manager-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-model-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-plugin-api-3.0.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-plugin-registry-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-profile-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-project-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-repository-metadata-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/maven-settings-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/mimepull-1.8.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/neethi-3.0.2.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/opensaml-2.5.1-1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/openws-1.4.2-1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/pbs-client-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/pdfbox-1.8.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/plexus-classworlds-2.4.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/plexus-component-annotations-1.5.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/plexus-container-default-1.0-alpha-9-stable-1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/plexus-interpolation-1.11.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/plexus-utils-3.0.10.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/policy-2.3.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/quartz-2.2.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/saaj-api-1.3.4.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/saaj-impl-1.3.18.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/sisu-guava-0.9.9.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/sisu-guice-3.1.0-no_aop.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/sisu-inject-bean-2.3.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/sisu-inject-plexus-2.3.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/slf4j-api-1.7.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/slf4j-log4j12-1.7.6.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/snakeyaml-1.13.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-aop-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-beans-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-context-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-context-support-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-core-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-expression-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-jdbc-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-ldap-core-1.3.2.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-orm-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-oxm-3.1.1.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-security-config-3.2.4.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-security-core-3.2.4.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-security-ldap-3.2.4.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-security-web-3.2.4.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-tx-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-web-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-webmvc-4.0.3.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-ws-core-2.0.5.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-ws-security-2.0.5.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/spring-xml-2.0.5.RELEASE.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/sta-client-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/stax-api-1.0-2.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/stax-api-1.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/stax-ex-1.7.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/stax2-api-3.1.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/streambuffer-1.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/usertype.core-3.1.0.GA.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/usertype.spi-3.1.0.GA.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/velocity-1.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/wagon-provider-api-1.0-beta-6.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/woodstox-core-asl-4.4.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/ws-api-1.0-SNAPSHOT.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/wsdl4j-1.6.3.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/wsit-rt-1.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/wss4j-1.6.17.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xalan-2.6.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xbean-spring-3.14.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xercesImpl-2.11.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xlxpScanner-1.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xlxpScannerUtils-1.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xml-apis-1.4.01.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xml-apis-ext-1.3.04.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xmlgraphics-commons-1.5.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xmlschema-core-2.1.0.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xmlsec-1.5.7.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xmltooling-1.3.2-1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xpp3_min-1.1.4c.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xstream-1.3.1.jar 
file:PATH_TO_WEBAPP_WAR/WEB-INF/lib/xws-security-1.3.1.jar 
file:PATH_TO_WEBAPP_WAR 

Наш WebApp настроен на использование локального загрузчика классов первой (через WAS администрация).

Исследуемый факт:: После перезапуска сервера WAS с помощью нашего webapp подпись WS-запросов работает нормально. Но когда приложение перезагружается (без перезапуска сервера), проблема возникает.

Любые идеи, которые могут быть проверены на предмет проблемы?

Спасибо, Шимон

+0

@TilmanHausherr - как вы думаете, это может повлиять на проблему, которая, похоже, больше связана с зависимостями xmlsec? – shimon001

+0

Я бы заподозрил 'xmlsec-1.5.7.jar', возможно, попытаюсь удалить его из приложения, создать изолированную общую библиотеку и отобразить приложение. – Gas

+0

@Gas - спасибо за ответ. К сожалению, перемещение JAR в изолированную общую библиотеку не помогло. Что вы думаете о том, что проблема не возникает после перезагрузки сервера, но появляется после обновления приложения (без перезапуска)? – shimon001

ответ

1

После некоторых исследований я обнаружил этот вопрос CXF, которые могут быть полезны: https://issues.apache.org/jira/browse/CXF-4603

Согласно комментариям, вы должны установить

WSSConfig.setAddJceProviders(false) 

перед тем WSS4J инициализируется.

Это может быть сделано с помощью контекста загрузчика слушателя, как это:

public class ProviderInitializationListener implements ServletContextListener { 

    @Override 
    public void contextInitialized(ServletContextEvent servletContextEvent) { 
     WSSConfig.setAddJceProviders(false); 
    } 

    @Override 
    public void contextDestroyed(ServletContextEvent servletContextEvent) { 
     //To change body of implemented methods use File | Settings | File Templates. 
    } 
} 

и зарегистрировать его в web.xml:

<listener> 
     <listener-class>com.test.security.listener.ProviderInitializationListener</listener-class> 
</listener> 

Тогда есть документация Websphere, которая описывает рекомендуемые подходы к использовать третью часть двигателя JAX-WS (например, CXF) - here

Составлено из руководства:

  1. Установите политику загрузчика классов на классы, загруженные сначала локальным загрузчиком классов (родительский) на уровне модуля.

    Изменение политики загрузчика классов до родительского последнего гарантирует, что внешнее стороннее время запуска JAX-WS и их JAR-файлы зависимых библиотек являются первыми в пути поиска загрузчика класса, тем самым гарантируя, что вместо него используется сторонняя реализация сервера приложений WebSphere.

    • В административной консоли выберите «Приложения»> «Типы приложений»> «Корпоративные приложения» WebSphere> имя_приложения> Определение загрузки и обновления классов.
    • В разделе «Параметры перезагрузки класса» выберите «Переопределить параметры перезагрузки класса для Web и EJB-модулей».
    • В разделе «Порядок загрузчика класса» выберите «Свойство« Заказчик класса »класса« Классы », загруженные сначала загрузчиком локального класса (родительский последний).
    • Нажмите «ОК», а затем «Сохранить», чтобы сохранить изменения.
  2. Отключить сканирование аннотаций веб-сервисов.

    Аннотирование сканирования может быть отключено на уровне приложения или на уровне сервера. Чтобы отключить сканирование аннотаций на уровне приложения, установите для свойства DisableIBMJAXWSEngine в файле META-INF/MANIFEST.MF файла WAR или EJB значение true. Пример:

    Manifest-Version: 1.0 
    DisableIBMJAXWSEngine: true 
    

    Чтобы отключить сканирование веб-служб аннотаций на уровне сервера:

    • В административной консоли перейдите на страницу пользовательских свойств для виртуальной машины Java.

      Серверы> Типы серверов> Серверы приложений WebSphere> имя_сервера, а затем, при инфраструктуре сервера выберите Java и управление процессами> Определение процесса> Виртуальная машина Java> Пользовательские свойства

    • Установите com.ibm.websphere. webservices.DisableIBMJAXWSEngine свойство истинного

    • Если это свойство не существует для вашей конфигурации, нажмите кнопку Создать и добавить com.ibm.websphere.webservices.DisableIBMJAXWSEngine в поле Имя и верно в поле Значение.

После всех этих настроек и перезагрузка сервера, исключение исчез. НО повторяется после некоторых повторных развертываний приложения. По-видимому, IBM по-прежнему загружает собственный поставщик безопасности, несмотря на то, что addJCEProviders установлено в false. В нашем случае это приемлемое состояние (перезагрузка сервера WAS необходима, чтобы заставить его работать)

Надеюсь, это было бы полезно для кого-то.

0

Основной причиной проблемы является xmlsec jars имеет пакеты javax. Мы использовали банки xmlsec-2.0.0, и это сработало. Мы получили намек на вопрос о банке Santuario xmlsec https://issues.apache.org/jira/browse/SANTUARIO-358. Я также заметил, что последняя версия CXF 3.1.6 содержит xmlsec-2.0.6.jar, которая не содержит пакеты javax, которые являются реальным решением этой проблемы. Используйте последний пакет cxf (> 3.0)

Смежные вопросы