Моя конечная точка CXF JaxWs размещена в веб-логике посредством войны. Я пытаюсь получить доступ к операции из автономного JaxWsDynamicClient. Клиент создается, но при попытке доступа к операции выдается следующее исключение.
Я вставил исключение на стороне сервера и на стороне клиента, SEI, клиентский код и соответствующие Сервисные и Клиентские ПО. Не удалось найти никаких результатов в исследовании этой проблемы, в основном, похоже, нет ответа.
Исключение сервера
java.lang.RuntimeException: Cannot create a secure XMLInputFactory
at org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:314) ~[cxf-core-3.0.0.jar:3.0.0]
at org.apache.cxf.staxutils.StaxUtils.getXMLInputFactory(StaxUtils.java:264) ~[cxf-core-3.0.0.jar:3.0.0]
at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1443) ~[cxf-core-3.0.0.jar:3.0.0]
at org.apache.cxf.interceptor.StaxInInterceptor.handleMessage(StaxInInterceptor.java:123) ~[cxf-core-3.0.0.jar:3.0.0]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) ~[cxf-core-3.0.0.jar:3.0.0]
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-core-3.0.0.jar:3.0.0]
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243) [cxf-rt-transports-http-3.0.0.jar:3.0.0]
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223) [cxf-rt-transports-http-3.0.0.jar:3.0.0]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:197) [cxf-rt-transports-http-3.0.0.jar:3.0.0]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149) [cxf-rt-transports-http-3.0.0.jar:3.0.0]
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171) [cxf-rt-transports-http-3.0.0.jar:3.0.0]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286) [cxf-rt-transports-http-3.0.0.jar:3.0.0]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206) [cxf-rt-transports-http-3.0.0.jar:3.0.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [javax.servlet_1.0.0.0_2-5.jar:2.5]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262) [cxf-rt-transports-http-3.0.0.jar:3.0.0]
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3732) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696) [weblogic.jar:10.3.6.0]
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) [com.bea.core.weblogic.security.identity_1.2.0.0.jar:1.2.0.0]
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) [com.bea.core.weblogic.security.wls_1.0.0.0_6-2-0-0.jar:6.2.0.0]
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) [weblogic.jar:10.3.6.0]
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) [weblogic.jar:10.3.6.0]
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) [com.bea.core.weblogic.workmanager_1.11.0.0.jar:1.11.0.0]
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) [com.bea.core.weblogic.workmanager_1.11.0.0.jar:1.11.0.0]
Исключение клиента
org.apache.cxf.binding.soap.SoapFault: Cannot create a secure XMLInputFactory
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1636)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1525)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1330)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:638)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
at org.apache.cxf.endpoint.ClientImpl.invokeWrapped(ClientImpl.java:314)
at org.apache.cxf.endpoint.ClientImpl.invokeWrapped(ClientImpl.java:305)
at com.learn.ws.client.LibraryServiceClient.main(LibraryServiceClient.java:40)
SEI
@WebService(name="library", targetNamespace="http://service.ws.learn.com")
@BindingType(value="http://www.w3.org/2003/05/soap/bindings/HTTP/")
public interface LibraryService {
@WebMethod(operationName="getBooks")
@ResponseWrapper(className="com.learn.ws.model.BookList", targetNamespace="http://service.ws.learn.com")
@WebResult(name="bookList")
public BookList getBooks();
}
Сервисный пом
4.0.0
com.learn.ws
LibraryWeb
0.0.1-SNAPSHOT
war
1.6
UTF-8
UTF-8
3.2.3.RELEASE
1.0.13
1.7.5
LibraryWeb
maven-war-plugin
2.1
src/main/webapp/WEB-INF/web.xml
org.springframework
spring-context
${spring-framework.version}
org.springframework
spring-web
${spring-framework.version}
org.slf4j
slf4j-api
${slf4j.version}
compile
ch.qos.logback
logback-classic
${logback.version}
runtime
org.apache.cxf
cxf-rt-frontend-jaxws
3.0.0
org.apache.cxf
cxf-rt-transports-http
3.0.0
javax.xml.bind
jaxb-api
2.1
Код клиента
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient("http://localhost:7001/LibraryWeb/services/library?wsdl");
Object[] res;
try {
res = client.invokeWrapped("getBooks");
System.out.println("List Of Books \n"+res[0]);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Клиент
4.0.0
org.springframework.samples
LibraryWebClientSpring
0.0.1-SNAPSHOT
1.6
UTF-8
UTF-8
3.2.3.RELEASE
1.0.13
1.7.5
org.springframework
spring-context
${spring-framework.version}
org.slf4j
slf4j-api
${slf4j.version}
compile
ch.qos.logback
logback-classic
${logback.version}
runtime
org.apache.cxf
cxf-rt-frontend-jaxws
3.0.0
org.apache.cxf
cxf-rt-transports-http
3.0.0
org.apache.cxf
cxf-rt-transports-http-jetty
3.0.0
Подробнее здесь: https://stackoverflow.com/questions/249 ... a-secure-x
JaxWsDynamicClientfactory + java.lang.RuntimeException: невозможно создать безопасный XMLInputFactory ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение