Работает ли библиотека Apache CXF на сервере WAS CE?

Я использую CXF, чтобы помочь мне вызвать определенные веб-сервисы. Я могу заставить мой код работать локально, но когда я разверну свою войну, у меня возникнут проблемы. После просмотра логов я считаю, что WAS CE использует axis2 в качестве механизма веб-службы. Это то, что вызывает мои проблемы? Библиотека CXF не работает на серверах WAS CE?

Изменить: вот мой код. Проблема, кажется, с аутентификацией x509. Мне удалось вызвать другой веб-сервис, который требует только базовую упреждающую аутентификацию без проблем.

    URL wsdlURL = new URL(endpoint);

    /*WSOrganization ss = new WSOrganization(wsdlURL, SERVICE_NAME);
    port = ss.getWSOrganizationSoap();*/

    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    factory.setAddress(endpoint);
    factory.setServiceClass(WSSoap.class);
    port = (WSSoap) factory.create();

    Client client = ClientProxy.getClient(port);
    Endpoint cxfEndpoint = client.getEndpoint();


    Map<String,Object> outProps = new HashMap<String,Object>();

    WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);

    outProps.put(WSHandlerConstants.ACTION, "Signature");
    outProps.put(WSHandlerConstants.USER, "alias");
    outProps.put(WSHandlerConstants.SIG_KEY_ID, "DirectReference");
    outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, 
        PWDCallbackHandler.class.getName());
    outProps.put(WSHandlerConstants.SIG_PROP_FILE, "crypto.properties");

    cxfEndpoint.getOutInterceptors().add(wssOut);

Логи дают мне эту ошибку:

javax.xml.ws.soap.SOAPFaultException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
at $Proxy96.findCode(Unknown Source)
... 6 more
Caused by: 
org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. 
at org.w3c.dom.DOMException.<init>(Unknown Source)
at org.apache.axiom.om.impl.dom.ParentNode.insertBefore(ParentNode.java:164)
at org.apache.axiom.om.impl.dom.NodeImpl.appendChild(NodeImpl.java:238)
at org.apache.axis2.saaj.SOAPPartImpl.appendChild(SOAPPartImpl.java:986)
at org.apache.cxf.staxutils.W3CDOMStreamWriter.setChild(W3CDOMStreamWriter.java:114)
at org.apache.cxf.staxutils.W3CDOMStreamWriter.newChild(W3CDOMStreamWriter.java:104)
at org.apache.cxf.staxutils.W3CDOMStreamWriter.writeStartElement(W3CDOMStreamWriter.java:132)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnvelopeStart(SoapOutInterceptor.java:122)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:81)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:61)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:519)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:449)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:352)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:304)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
... 7 more

0 ответов

Другие вопросы по тегам