Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用CXF 3.0.3+WSS4J在WebSphereApplicationServer8上使用SOAP ws-Security_Java_Spring_Cxf_Websphere 8_Wss4j - Fatal编程技术网

Java 使用CXF 3.0.3+WSS4J在WebSphereApplicationServer8上使用SOAP ws-Security

Java 使用CXF 3.0.3+WSS4J在WebSphereApplicationServer8上使用SOAP ws-Security,java,spring,cxf,websphere-8,wss4j,Java,Spring,Cxf,Websphere 8,Wss4j,我的应用程序需要使用一些SOAP ws-SerSecurity服务,并且在Tomcat中工作良好,但当我将其部署到8时,我得到了下一个场景: 案例1: 如果我只使用JaxWsProxyFactoryBean 我发现此异常无法加载扩展类org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.org.apache.cxf.bus.extension.ExtensionException:无法加载扩展类org.apache.cxf.ws.policy

我的应用程序需要使用一些SOAP ws-SerSecurity服务,并且在Tomcat中工作良好,但当我将其部署到8时,我得到了下一个场景:

案例1:

如果我只使用JaxWsProxyFactoryBean

我发现此异常无法加载扩展类org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.org.apache.cxf.bus.extension.ExtensionException:无法加载扩展类org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl。java:183在org.apache.cxf.bus.extension.extension.getClassObjectExtension.java:199在org.apache.cxf.bus.extension.ExtensionManagerImpl.activateAllByTypeExtensionManagerImpl.java:144在org.apache.cxf.bus.extension.ExtensionManagerBus.ExtensionManagerBus.java:169在java:175位于org.apache.cxf.bus.extension.ExtensionManagerBus.ExtensionManagerBus.java:175位于org.apache.cxf.bus.createBusCXFBusFactory.java:40位于org.apache.cxf.bus.CXFBusFactory.createBusCXFBusFactory.java:36位于org.apache.cxf.bus.CXFBusFactory.createBusCXFBusFactory.java:32位于java:146位于org.apache.cxf.bus.spring.spring.SpringBusFactory.createbussspringbusfactory.java:122位于org.apache.cxf.bus.spring.SpringBusFactory.createbussspringbusfactory.java:94位于org.apache.cxf.bus.spring.SpringBusFactory.createbussspringbusfactory.java:83位于org.apache.cxf.BusFactory.getDefaultBusFactory.java:106位于org.apache.cxf.BusFactory.createThreadBusFactory.java:243位于org.apache.cxf.BusFactory.getThreadDefaultBusFactory.java:227位于org.apache.cxf.BusFactory.getThreadDefaultBusFactory.java:214位于org.apache.cxf.frontend.ClientProxyFactoryBean.configureObjectClientProxyFactoryBean.java:100位于org.apache.cxf.frontend.ClientProxyFactoryBean.createClientProxyFactoryBean.java:133位于org.apache.cxf.jaxws.JaxWsProxyFactoryBean.createJaxWsProxyFactoryBean.java:142

案例2:

如果我使用这个实现

    Service service = new Service();
    Cliente client= service.getClientePort();

    Client clientecxf = ClientProxy.getClient(client);

    Map<String, Object> outProps = new HashMap<String, Object>();
    outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
    outProps.put(WSHandlerConstants.USER, "USER");
    outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
    outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordHandler.class.getName());

    WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
    clientecxf.getOutInterceptors().add(wssOut);
我发现这个org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler与org.apache.cxf.frontend.ClientProxyjava.lang.ClassCastException不兼容:org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler与org.apache.cxf.frontend.ClientProxy.getClientClientProxy.java:128 atcom.protecion.hubDigital.integration.impl.consultasaldocsimpl.consultarSaldoCesantiasDetalladoConsultaSaldosImpl.java:199位于com.protecion.hubDigital.core.services.impl.saldoserviceimpl.java:76位于com.protecion.hubDigital.rest.controller.SaldoConsultaControlador.consultardossaldoconsultacontrolador.java:60位于sun.reflect.NativeMethodAccessorImpl.Invoke0 sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:60位于sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:37位于java.lang.reflect.Method.invokeMethod.invokeMethod:611位于org.springframework.web.method.support.invokableHandlerMethod.invokeInvokableHandlerMethod.java:214位于org.springframework.web.method.support.invokableHandlerMethod.invokeForRequestInInvokableHandlerMethod.java:132位于org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeandHandleReservleInvocableHandlerMethod.java:104位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.InvokeHandleMethodRequestsMappingHandlerAdapter.java:749 atorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternalRequestMappingHandlerAdapter.java:690位于org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handleAbstractHandlerMethodAdapter.java:83位于org.springframework.web.servlet.DispatcherServlet.doDispatchersDispatcherservlet.java:945位于org.springframework.web.servlet.DispatcherServlet.doServiceDispatcherServlet.java:876在org.springframework.web.servlet.processRequestFrameworkServlet.java:961在org.springframework.web.servlet.FrameworkServlet.doGetFrameworkServlet.java:852在javax.servlet.http.HttpServlet.serviceHttpServlet.java:575在java:837在javax.servlet.http.HttpServlet.serviceHttpServlet.java:668在com.ibm.ws.webcontainer.servlet.ServletWrapper.serviceServletWrapper.java:1214在com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequestServletWrapper.java:774在com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequestServletWrapper.java:456在com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.HandlerRequestServletWrapperImpl.java:178在com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTargetWebAppFilterChain.java:125在com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilterWebAppFilterChain.java:92

我也尝试了这篇文章中的建议,但不起作用

谢谢你的帮助

    Service service = new Service();
    Cliente client= service.getClientePort();

    Client clientecxf = ClientProxy.getClient(client);

    Map<String, Object> outProps = new HashMap<String, Object>();
    outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
    outProps.put(WSHandlerConstants.USER, "USER");
    outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
    outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordHandler.class.getName());

    WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
    clientecxf.getOutInterceptors().add(wssOut);