You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by geecxf <am...@ge.com> on 2013/12/06 03:20:49 UTC
CXF is not handling SOAP fault
Using the cxf-codegen-plugin (version 2.7.3), I have generated client
ports/proxies for a SOAP service. When the SOAP service returns a successful
response everything works fine. However, when the SOAP service returns a
fault, it seems that CXF is not able to convert the SOAP fault in the
correct auto-generated exception. Here is the stack trace for such an even:
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] PhaseInterceptorChain WARN
Interceptor for
{http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element
{http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
{http://org.apache.axis2/xsd}getDecisionResponse.
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
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 com.sun.proxy.$Proxy32.getDecision(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:506)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:214)
at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
[ main] AbstractResourceHelper WARN
Missing resource key=wso2isclient.internalServiceImplFailure
I'm wondering if I am missing a property or interceptor that is causing CXF
to choke when trying to convert the SOAP fault into a Java exception.
Please help.
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Dan, you are the MAN.
Of course, you are absolutely right about the WSO2 WSDL being total rubbish.
I filed a support ticket for that. However, the transformInInterceptor
proved to be a viable work around. I don't particularly like it but I don't
exactly have an option at this point.
Hopefully, WSO2 has fixed this in later versions but we'll see what they
say. They use AXIS which in my opinion is pretty crummy.
In the meanwhile, I've learned alot and got this thing working so thank you
to you and Aki. On a philosophical note, I'm always baffled when I realize
that the "S" in SOAP stands for simple. I think a better name would be COAP
where the "C" stands for complex and the name itself describes my
relationship with the technology. As in I have to cope with COAP every day.
Happy holidays
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737748.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Daniel Kulp <dk...@apache.org>.
On Dec 11, 2013, at 4:01 PM, geecxf <am...@ge.com> wrote:
> Is there a way to have CXF ignore the namespace differences?
You can use the transformation feature:
http://cxf.apache.org/docs/transformationfeature.html
to map the invalid namespace to the valid namespace. That might be the best option.
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Is there a way to have CXF ignore the namespace differences?
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737740.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Daniel Kulp <dk...@apache.org>.
This would be a bug in their service. You’d need to file a bug with WSO2.
Basically, according to the schema, the “Message” element should be in the same namespace as the EntitlementServiceException. They are defined in the same schema. By putting the Message element in a different namespace, the response is no longer valid according to their own contract.
You could likely create a copy of the wsdl locally and munge the schemas to match what they are actually sending if you needed to get this to work. Basically, create a new “schema” element in the type section of the wsdl with that target namespace and elementFormDefault=qualified, move the entire “Exception” complex type there, add an “import” of that namespace into the source schema along with a namespace declaration, then change the “type” of the internal EntitlementServiceException element to that new Exception type (change the namespace prefix). Regenerate all the code based on that new local wsdl.
That said, I’d log a bug with WSO2.
Dan
On Dec 11, 2013, at 2:03 PM, geecxf <am...@ge.com> wrote:
> Hi Dan,
>
> I poked around a bit and found that the port type was being set in two
> separate places in the code. I fixed that and now it looks like I'm getting
> an entirely different error. It seems that this time we are definitely
> sending and receiving SOAP. However there seems to be some problem
> marshalling the response. So thanks to you guys I've made some progress but
> definitely not at home base yet. Any thoughts on the output below?
>
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
> from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
> [ main] EntitlementServicePortType INFO
> Outbound Message
> ---------------------------
> ID: 1
> Address:
> https://localhost:9443/services/EntitlementService.EntitlementServiceHttpsSoap12Endpoint/
> Encoding: UTF-8
> Http-Method: POST
> Content-Type: application/soap+xml; action="urn:getDecision"
> Headers: {Accept=[*/*], Cookie=[$Version="1";
> JSESSIONID=6BBD6A5A9E370811CE842152081AE583; $Path=/]}
> Payload: <soap:Envelope
> xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body><getDecision
> xmlns="http://org.apache.axis2/xsd"
> xmlns:ns2="http://dto.entitlement.identity.carbon.wso2.org/xsd"><request
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getDecision></soap:Body></soap:Envelope>
> --------------------------------------
> [ main] EntitlementServicePortType INFO
> Inbound Message
> ----------------------------
> ID: 1
> Response-Code: 500
> Encoding: UTF-8
> Content-Type: application/soap+xml;charset=UTF-8
> Headers: {connection=[close],
> content-type=[application/soap+xml;charset=UTF-8], Date=[Wed, 11 Dec 2013
> 19:01:27 GMT], Server=[WSO2 Carbon Server], transfer-encoding=[chunked]}
> Payload: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
> xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><soapenv:Fault><soapenv:Code><soapenv:Value>soapenv:Receiver</soapenv:Value></soapenv:Code><soapenv:Reason><soapenv:Text
> xml:lang="en-US">Error occurred while evaluating XACML
> request</soapenv:Text></soapenv:Reason><soapenv:Detail><ns:EntitlementServiceException
> xmlns:ns="http://org.apache.axis2/xsd"><ns:EntitlementServiceException><axis2ns8:Message
> xmlns:axis2ns8="http://entitlement.identity.carbon.wso2.org">Error occurred
> while evaluating XACML
> request</axis2ns8:Message></ns:EntitlementServiceException></ns:EntitlementServiceException></soapenv:Detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> --------------------------------------
> [ main] PhaseInterceptorChain WARN
> Interceptor for
> {http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
> has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element
> (uri:"http://entitlement.identity.carbon.wso2.org", local:"Message").
> Expected elements are <{http://org.apache.axis2/xsd}Message>
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:811)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:629)
> at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:157)
> at
> org.apache.cxf.interceptor.ClientFaultConverter.processFaultDetail(ClientFaultConverter.java:154)
> at
> org.apache.cxf.interceptor.ClientFaultConverter.handleMessage(ClientFaultConverter.java:81)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:114)
> 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:271)
> at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
> at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 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 com.sun.proxy.$Proxy36.getDecision(Unknown Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:510)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:218)
> at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
> Caused by: javax.xml.bind.UnmarshalException: unexpected element
> (uri:"http://entitlement.identity.carbon.wso2.org", local:"Message").
> Expected elements are <{http://org.apache.axis2/xsd}Message>
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:101)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(StructureLoader.java:243)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:239)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
> at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:122)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:314)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:293)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:754)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:94)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder$1.run(JAXBEncoderDecoder.java:797)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:795)
> ... 33 more
> [ main] AbstractResourceHelper WARN
> Missing resource key=wso2isclient.internalServiceImplFailure
> Exception occurred com.ge.dsp.wso2.client.Wso2IdentityServerClientException:
> wso2isclient.internalServiceImplFailure
>
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:571)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:218)
> at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:510)
> ... 2 more
> Caused by: javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error:
> unexpected element (uri:"http://entitlement.identity.carbon.wso2.org",
> local:"Message"). Expected elements are
> <{http://org.apache.axis2/xsd}Message>
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:155)
> at com.sun.proxy.$Proxy36.getDecision(Unknown Source)
> ... 7 more
> Caused by: javax.xml.bind.UnmarshalException: unexpected element
> (uri:"http://entitlement.identity.carbon.wso2.org", local:"Message").
> Expected elements are <{http://org.apache.axis2/xsd}Message>
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:101)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(StructureLoader.java:243)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:239)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
> at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:122)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:314)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:293)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:754)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:94)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder$1.run(JAXBEncoderDecoder.java:797)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:795)
> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:629)
> at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:157)
> at
> org.apache.cxf.interceptor.ClientFaultConverter.processFaultDetail(ClientFaultConverter.java:154)
> at
> org.apache.cxf.interceptor.ClientFaultConverter.handleMessage(ClientFaultConverter.java:81)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:114)
> 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:271)
> at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
> at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 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)
> ... 8 more
>
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737734.html
> Sent from the cxf-user mailing list archive at Nabble.com.
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Hi Dan,
I poked around a bit and found that the port type was being set in two
separate places in the code. I fixed that and now it looks like I'm getting
an entirely different error. It seems that this time we are definitely
sending and receiving SOAP. However there seems to be some problem
marshalling the response. So thanks to you guys I've made some progress but
definitely not at home base yet. Any thoughts on the output below?
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
[ main] EntitlementServicePortType INFO
Outbound Message
---------------------------
ID: 1
Address:
https://localhost:9443/services/EntitlementService.EntitlementServiceHttpsSoap12Endpoint/
Encoding: UTF-8
Http-Method: POST
Content-Type: application/soap+xml; action="urn:getDecision"
Headers: {Accept=[*/*], Cookie=[$Version="1";
JSESSIONID=6BBD6A5A9E370811CE842152081AE583; $Path=/]}
Payload: <soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body><getDecision
xmlns="http://org.apache.axis2/xsd"
xmlns:ns2="http://dto.entitlement.identity.carbon.wso2.org/xsd"><request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/></getDecision></soap:Body></soap:Envelope>
--------------------------------------
[ main] EntitlementServicePortType INFO
Inbound Message
----------------------------
ID: 1
Response-Code: 500
Encoding: UTF-8
Content-Type: application/soap+xml;charset=UTF-8
Headers: {connection=[close],
content-type=[application/soap+xml;charset=UTF-8], Date=[Wed, 11 Dec 2013
19:01:27 GMT], Server=[WSO2 Carbon Server], transfer-encoding=[chunked]}
Payload: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><soapenv:Fault><soapenv:Code><soapenv:Value>soapenv:Receiver</soapenv:Value></soapenv:Code><soapenv:Reason><soapenv:Text
xml:lang="en-US">Error occurred while evaluating XACML
request</soapenv:Text></soapenv:Reason><soapenv:Detail><ns:EntitlementServiceException
xmlns:ns="http://org.apache.axis2/xsd"><ns:EntitlementServiceException><axis2ns8:Message
xmlns:axis2ns8="http://entitlement.identity.carbon.wso2.org">Error occurred
while evaluating XACML
request</axis2ns8:Message></ns:EntitlementServiceException></ns:EntitlementServiceException></soapenv:Detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
--------------------------------------
[ main] PhaseInterceptorChain WARN
Interceptor for
{http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element
(uri:"http://entitlement.identity.carbon.wso2.org", local:"Message").
Expected elements are <{http://org.apache.axis2/xsd}Message>
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:811)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:629)
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:157)
at
org.apache.cxf.interceptor.ClientFaultConverter.processFaultDetail(ClientFaultConverter.java:154)
at
org.apache.cxf.interceptor.ClientFaultConverter.handleMessage(ClientFaultConverter.java:81)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:114)
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:271)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at
org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
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 com.sun.proxy.$Proxy36.getDecision(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:510)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:218)
at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
Caused by: javax.xml.bind.UnmarshalException: unexpected element
(uri:"http://entitlement.identity.carbon.wso2.org", local:"Message").
Expected elements are <{http://org.apache.axis2/xsd}Message>
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642)
at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254)
at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249)
at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:101)
at
com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(StructureLoader.java:243)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
at
com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
at
com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:239)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:122)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:314)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:293)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:754)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:94)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder$1.run(JAXBEncoderDecoder.java:797)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:795)
... 33 more
[ main] AbstractResourceHelper WARN
Missing resource key=wso2isclient.internalServiceImplFailure
Exception occurred com.ge.dsp.wso2.client.Wso2IdentityServerClientException:
wso2isclient.internalServiceImplFailure
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:571)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:218)
at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:510)
... 2 more
Caused by: javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error:
unexpected element (uri:"http://entitlement.identity.carbon.wso2.org",
local:"Message"). Expected elements are
<{http://org.apache.axis2/xsd}Message>
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:155)
at com.sun.proxy.$Proxy36.getDecision(Unknown Source)
... 7 more
Caused by: javax.xml.bind.UnmarshalException: unexpected element
(uri:"http://entitlement.identity.carbon.wso2.org", local:"Message").
Expected elements are <{http://org.apache.axis2/xsd}Message>
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642)
at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254)
at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249)
at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:101)
at
com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(StructureLoader.java:243)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
at
com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
at
com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:239)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:276)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:245)
at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:122)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:314)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:293)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:754)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:94)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder$1.run(JAXBEncoderDecoder.java:797)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:795)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:629)
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:157)
at
org.apache.cxf.interceptor.ClientFaultConverter.processFaultDetail(ClientFaultConverter.java:154)
at
org.apache.cxf.interceptor.ClientFaultConverter.handleMessage(ClientFaultConverter.java:81)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:114)
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:271)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at
org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
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)
... 8 more
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737734.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
It seems like the cxf-codegen-plugin has some effect on the expected
namespace for the SOAP message. Is there a way to tweak the codegen plugin
so that it either ignores the namespace or I can set it to the namespace it
will get back? Here's what I'm doing right now in the codegen plugin
<wsdlOption>
<wsdl>src/main/resources/EntitlementService.wsdl</wsdl>
<wsdlLocation>classpath:EntitlementService.wsdl</wsdlLocation>
<extraargs>
<extraarg>-client</extraarg>
<extraarg>-p</extraarg>
<extraarg>com.ge.dsp.wso2.client.wsdl.ent</extraarg>
<extraarg>-exsh</extraarg>
<extraarg>true</extraarg>
</extraargs>
</wsdlOption>
Thanks
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737735.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Daniel Kulp <dk...@apache.org>.
I think I’ll need a more complete/runnable example. If I take the WSO2 wsdl, just edit the URL’s to be http instead of https (don’t feel like messing with https at this point), run wsdl2java on it and just do a simple:
EntitlementService ss = new EntitlementService();
EntitlementServicePortType port = ss.getEntitlementServiceHttpsSoap11Endpoint();
port.getDecisionByAttributes(“”, “”, “", new List<String>());
and wireshark that, the message is definitely going out as SOAP 1.1.
Dan
On Dec 11, 2013, at 12:20 PM, geecxf <am...@ge.com> wrote:
> Turns out the person who originally wrote the code was overriding the
> endpoint address. Like so:
>
> BindingProvider bp = (BindingProvider)
> this.entitlementServicePort;
>
> bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
> this.entitlementServiceUrl);
>
> bp.getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
>
> However, when I updated the address to point to the SOAP12 endpoint. I still
> see the same results.
>
>
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
> from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] EntitlementServicePortType INFO
> Outbound Message
> ---------------------------
> ID: 1
> Address:
> https://localhost:9443/services/EntitlementService.EntitlementServiceHttpsSoap12Endpoint
> Encoding: UTF-8
> Http-Method: POST
> Content-Type: text/xml
> Headers: {Accept=[*/*], Cookie=[$Version="1";
> JSESSIONID=CED1F1D50F42D32D62B11E1671A556A7; $Path=/]}
> Payload: <getDecision
> xmlns:ns2="http://dto.entitlement.identity.carbon.wso2.org/xsd"
> xmlns="http://org.apache.axis2/xsd"><request
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getDecision>
> --------------------------------------
> [ main] EntitlementServicePortType INFO
> Inbound Message
> ----------------------------
> ID: 1
> Response-Code: 500
> Encoding: UTF-8
> Content-Type: text/xml;charset=UTF-8
> Headers: {connection=[close], content-type=[text/xml;charset=UTF-8],
> Date=[Wed, 11 Dec 2013 17:18:10 GMT], Server=[WSO2 Carbon Server],
> transfer-encoding=[chunked]}
> Payload: <ns:EntitlementServiceException
> xmlns:ns="http://org.apache.axis2/xsd"><ns:EntitlementServiceException><axis2ns5:Message
> xmlns:axis2ns5="http://entitlement.identity.carbon.wso2.org">Error occurred
> while evaluating XACML
> request</axis2ns5:Message></ns:EntitlementServiceException></ns:EntitlementServiceException>
> --------------------------------------
> [ main] PhaseInterceptorChain WARN
> Interceptor for
> {http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
> has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unexpected wrapper element
> {http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
> {http://org.apache.axis2/xsd}getDecisionResponse.
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
> at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 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 com.sun.proxy.$Proxy36.getDecision(Unknown Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
> at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737729.html
> Sent from the cxf-user mailing list archive at Nabble.com.
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Turns out the person who originally wrote the code was overriding the
endpoint address. Like so:
BindingProvider bp = (BindingProvider)
this.entitlementServicePort;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
this.entitlementServiceUrl);
bp.getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
However, when I updated the address to point to the SOAP12 endpoint. I still
see the same results.
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] EntitlementServicePortType INFO
Outbound Message
---------------------------
ID: 1
Address:
https://localhost:9443/services/EntitlementService.EntitlementServiceHttpsSoap12Endpoint
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml
Headers: {Accept=[*/*], Cookie=[$Version="1";
JSESSIONID=CED1F1D50F42D32D62B11E1671A556A7; $Path=/]}
Payload: <getDecision
xmlns:ns2="http://dto.entitlement.identity.carbon.wso2.org/xsd"
xmlns="http://org.apache.axis2/xsd"><request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/></getDecision>
--------------------------------------
[ main] EntitlementServicePortType INFO
Inbound Message
----------------------------
ID: 1
Response-Code: 500
Encoding: UTF-8
Content-Type: text/xml;charset=UTF-8
Headers: {connection=[close], content-type=[text/xml;charset=UTF-8],
Date=[Wed, 11 Dec 2013 17:18:10 GMT], Server=[WSO2 Carbon Server],
transfer-encoding=[chunked]}
Payload: <ns:EntitlementServiceException
xmlns:ns="http://org.apache.axis2/xsd"><ns:EntitlementServiceException><axis2ns5:Message
xmlns:axis2ns5="http://entitlement.identity.carbon.wso2.org">Error occurred
while evaluating XACML
request</axis2ns5:Message></ns:EntitlementServiceException></ns:EntitlementServiceException>
--------------------------------------
[ main] PhaseInterceptorChain WARN
Interceptor for
{http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element
{http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
{http://org.apache.axis2/xsd}getDecisionResponse.
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at
org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
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 com.sun.proxy.$Proxy36.getDecision(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737729.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Daniel Kulp <dk...@apache.org>.
That’s still not using the SOAP endpoint somehow as it’s still going out as raw XML, not SOAP. Hmm… that gets really strange.
Dan
On Dec 11, 2013, at 12:02 PM, geecxf <am...@ge.com> wrote:
> Here is the full output when using the SOAP11 endpoint.
>
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
> from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] EntitlementServicePortType INFO
> Outbound Message
> ---------------------------
> ID: 1
> Address: https://localhost:9443/services/EntitlementService
> Encoding: UTF-8
> Http-Method: POST
> Content-Type: text/xml
> Headers: {Accept=[*/*], Cookie=[$Version="1";
> JSESSIONID=66512A5913D56E42D3D7BC9D3EC6763F; $Path=/]}
> Payload: <getDecision
> xmlns:ns2="http://dto.entitlement.identity.carbon.wso2.org/xsd"
> xmlns="http://org.apache.axis2/xsd"><request
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getDecision>
> --------------------------------------
> [ main] EntitlementServicePortType INFO
> Inbound Message
> ----------------------------
> ID: 1
> Response-Code: 500
> Encoding: UTF-8
> Content-Type: text/xml;charset=UTF-8
> Headers: {connection=[close], content-type=[text/xml;charset=UTF-8],
> Date=[Wed, 11 Dec 2013 17:01:44 GMT], Server=[WSO2 Carbon Server],
> transfer-encoding=[chunked]}
> Payload: <ns:EntitlementServiceException
> xmlns:ns="http://org.apache.axis2/xsd"><ns:EntitlementServiceException><axis2ns4:Message
> xmlns:axis2ns4="http://entitlement.identity.carbon.wso2.org">Error occurred
> while evaluating XACML
> request</axis2ns4:Message></ns:EntitlementServiceException></ns:EntitlementServiceException>
> --------------------------------------
> [ main] PhaseInterceptorChain WARN
> Interceptor for
> {http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
> has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unexpected wrapper element
> {http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
> {http://org.apache.axis2/xsd}getDecisionResponse.
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
> at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 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 com.sun.proxy.$Proxy36.getDecision(Unknown Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
> at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
> [ main] AbstractResourceHelper WARN
> Missing resource key=wso2isclient.internalServiceImplFailure
> Exception occurred
> com.ge.dsp.wso2.client.Wso2IdentityServerClientException:
> wso2isclient.internalServiceImplFailure
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:569)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
> at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
> ... 2 more
> Caused by: javax.xml.ws.http.HTTPException
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:147)
> at com.sun.proxy.$Proxy36.getDecision(Unknown Source)
> ... 7 more
> Caused by: org.apache.cxf.interceptor.Fault: Unexpected wrapper element
> {http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
> {http://org.apache.axis2/xsd}getDecisionResponse.
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
> at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 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)
> ... 8 more
>
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737725.html
> Sent from the cxf-user mailing list archive at Nabble.com.
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Here is the full output when using the SOAP11 endpoint.
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] EntitlementServicePortType INFO
Outbound Message
---------------------------
ID: 1
Address: https://localhost:9443/services/EntitlementService
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml
Headers: {Accept=[*/*], Cookie=[$Version="1";
JSESSIONID=66512A5913D56E42D3D7BC9D3EC6763F; $Path=/]}
Payload: <getDecision
xmlns:ns2="http://dto.entitlement.identity.carbon.wso2.org/xsd"
xmlns="http://org.apache.axis2/xsd"><request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/></getDecision>
--------------------------------------
[ main] EntitlementServicePortType INFO
Inbound Message
----------------------------
ID: 1
Response-Code: 500
Encoding: UTF-8
Content-Type: text/xml;charset=UTF-8
Headers: {connection=[close], content-type=[text/xml;charset=UTF-8],
Date=[Wed, 11 Dec 2013 17:01:44 GMT], Server=[WSO2 Carbon Server],
transfer-encoding=[chunked]}
Payload: <ns:EntitlementServiceException
xmlns:ns="http://org.apache.axis2/xsd"><ns:EntitlementServiceException><axis2ns4:Message
xmlns:axis2ns4="http://entitlement.identity.carbon.wso2.org">Error occurred
while evaluating XACML
request</axis2ns4:Message></ns:EntitlementServiceException></ns:EntitlementServiceException>
--------------------------------------
[ main] PhaseInterceptorChain WARN
Interceptor for
{http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element
{http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
{http://org.apache.axis2/xsd}getDecisionResponse.
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at
org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
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 com.sun.proxy.$Proxy36.getDecision(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
[ main] AbstractResourceHelper WARN
Missing resource key=wso2isclient.internalServiceImplFailure
Exception occurred
com.ge.dsp.wso2.client.Wso2IdentityServerClientException:
wso2isclient.internalServiceImplFailure
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:569)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
... 2 more
Caused by: javax.xml.ws.http.HTTPException
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:147)
at com.sun.proxy.$Proxy36.getDecision(Unknown Source)
... 7 more
Caused by: org.apache.cxf.interceptor.Fault: Unexpected wrapper element
{http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
{http://org.apache.axis2/xsd}getDecisionResponse.
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at
org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
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)
... 8 more
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737725.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Daniel Kulp <dk...@apache.org>.
On Dec 11, 2013, at 11:56 AM, geecxf <am...@ge.com> wrote:
> Hi Aki,
>
> I tried switching to:
>
> private EntitlementServicePortType entitlementServicePort =
> this.entitlementService
>
> .getEntitlementServiceHttpsSoap12Endpoint();
>
> and I see the exact same results. In this case it should be using the SOAP
> endpoint but still can't interpret the SOAP fault.
Can you grab new wire transfers and stack traces with the result of that? THAT would start concerning me as the faults in soap definitely should be working.
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Hi Aki,
I tried switching to:
private EntitlementServicePortType entitlementServicePort =
this.entitlementService
.getEntitlementServiceHttpsSoap12Endpoint();
and I see the exact same results. In this case it should be using the SOAP
endpoint but still can't interpret the SOAP fault.
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737721.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Aki Yoshida <el...@gmail.com>.
the service is using the http-binding and not the soap-binding.
and it seems cxf does the right thing to do the normal request and response.
and i don't know what is the correct behavior for handling the
soap-fault when you are not using the soap fault?
i think the service shouldn't be returning the fault/exception in the
same way as the http content, as it is inevitably interpreted as the
normal response and hits this element mismatch error.
2013/12/11 geecxf <am...@ge.com>:
> Hi Dan,
>
> Thanks so much for responding. I am generating the client using the
> cxf-codgen-plugin for Maven (version 2.7.3).
>
> I am getting the port using the following code:
>
> private EntitlementServicePortType entitlementServicePort =
> this.entitlementService
>
> .getEntitlementServiceHttpsEndpoint();
>
> The WSDL is for version 4.1.0 of WSO2 so it should not be that different
> than the link you sent. I tweaked your link to point to version 4.1.0:
>
> https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.1.0/service-stubs/org.wso2.carbon.identity.entitlement.stub/4.1.0/src/main/resources/EntitlementService.wsdl
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737717.html
> Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Same results when using:
private EntitlementServicePortType entitlementServicePort
= this.entitlementService
.getEntitlementServiceHttpsSoap11Endpoint();
Maybe that helps narrow the problem down.
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737723.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Daniel Kulp <dk...@apache.org>.
On Dec 11, 2013, at 11:38 AM, geecxf <am...@ge.com> wrote:
> Hi Dan,
>
> Thanks so much for responding. I am generating the client using the
> cxf-codgen-plugin for Maven (version 2.7.3).
>
> I am getting the port using the following code:
>
> private EntitlementServicePortType entitlementServicePort =
> this.entitlementService
>
> .getEntitlementServiceHttpsEndpoint();
Change this code to:
.getEntitlementServiceHttpsSoap11Endpoint();
and it will likely start working as it would actually be setup for SOAP.
Dan
> The WSDL is for version 4.1.0 of WSO2 so it should not be that different
> than the link you sent. I tweaked your link to point to version 4.1.0:
>
> https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.1.0/service-stubs/org.wso2.carbon.identity.entitlement.stub/4.1.0/src/main/resources/EntitlementService.wsdl
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737717.html
> Sent from the cxf-user mailing list archive at Nabble.com.
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Hi Dan,
Thanks so much for responding. I am generating the client using the
cxf-codgen-plugin for Maven (version 2.7.3).
I am getting the port using the following code:
private EntitlementServicePortType entitlementServicePort =
this.entitlementService
.getEntitlementServiceHttpsEndpoint();
The WSDL is for version 4.1.0 of WSO2 so it should not be that different
than the link you sent. I tweaked your link to point to version 4.1.0:
https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.1.0/service-stubs/org.wso2.carbon.identity.entitlement.stub/4.1.0/src/main/resources/EntitlementService.wsdl
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737717.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Hi Dan, I wanted to add some more information that my help to my previous.
The code uses reflection to invoke the method provided by the CXF port. Here
are some snippets:
String requestStr = <some XML>
Object[] parameters =
{
requestStr
};
Class<?>[] parameterTypes =
{
String.class
};
String operation = "getDecision";
Method method =
this.entitlementServicePort.getClass().getDeclaredMethod(operation,
parameterTypes);
Object response = method.invoke(this.entitlementServicePort, parameters);
Since it seems like CXF does it's own reflection and run-time code-injection
magic. I'm wondering if this way of calling the operation is simply
incompatible with CXF.
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737720.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Daniel Kulp <dk...@apache.org>.
Well, it’s not sending a SOAP request. Quite honestly, I’m not sure what CXF is doing here as it’s obviously not using SOAP.
Can you send the WSDL? Is it the same as:
https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.0.0/service-stubs/org.wso2.carbon.identity.entitlement.stub/4.0.0/src/main/resources/EntitlementService.wsdl
If so, how are you creating the client? Are you using either the EntitlementServiceHttpsSoap11Endpoint or EntitlementServiceHttpsSoap12Endpoint endpoints? If not, definitely try those as those would be using soap and thus would be much much better tested and supported.
Dan
On Dec 9, 2013, at 2:45 PM, geecxf <am...@ge.com> wrote:
> Hi Aki,
>
> Thanks for the response. Hopefully, this sheds some light on the situation:
>
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
> from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] EntitlementServicePortType INFO
> Outbound Message
> ---------------------------
> ID: 1
> Address: https://localhost:9443/services/EntitlementService
> Encoding: UTF-8
> Http-Method: POST
> Content-Type: text/xml
> Headers: {Accept=[*/*], Cookie=[$Version="1";
> JSESSIONID=5FC3F057E02C1C836DB67F5CC82899DD; $Path=/]}
> Payload: <getDecision
> xmlns:ns2="http://dto.entitlement.identity.carbon.wso2.org/xsd"
> xmlns="http://org.apache.axis2/xsd"><request
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getDecision>
> --------------------------------------
> [ main] EntitlementServicePortType INFO
> Inbound Message
> ----------------------------
> ID: 1
> Response-Code: 500
> Encoding: UTF-8
> Content-Type: text/xml;charset=UTF-8
> Headers: {connection=[close], content-type=[text/xml;charset=UTF-8],
> Date=[Mon, 09 Dec 2013 19:44:19 GMT], Server=[WSO2 Carbon Server],
> transfer-encoding=[chunked]}
> Payload: <ns:EntitlementServiceException
> xmlns:ns="http://org.apache.axis2/xsd"><ns:EntitlementServiceException><axis2ns2:Message
> xmlns:axis2ns2="http://entitlement.identity.carbon.wso2.org">Error occurred
> while evaluating XACML
> request</axis2ns2:Message></ns:EntitlementServiceException></ns:EntitlementServiceException>
> --------------------------------------
> [ main] PhaseInterceptorChain WARN
> Interceptor for
> {http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
> has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unexpected wrapper element
> {http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
> {http://org.apache.axis2/xsd}getDecisionResponse.
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
> at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 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 com.sun.proxy.$Proxy32.getDecision(Unknown Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
> at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
> [ main] AbstractResourceHelper WARN
> Missing resource key=wso2isclient.internalServiceImplFailure
> Exception occurred
> com.ge.dsp.wso2.client.Wso2IdentityServerClientException:
> wso2isclient.internalServiceImplFailure
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:569)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
> at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
> ... 2 more
> Caused by: javax.xml.ws.http.HTTPException
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:147)
> at com.sun.proxy.$Proxy32.getDecision(Unknown Source)
> ... 7 more
> Caused by: org.apache.cxf.interceptor.Fault: Unexpected wrapper element
> {http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
> {http://org.apache.axis2/xsd}getDecisionResponse.
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
> at
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
> at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 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)
> ... 8 more
>
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737608.html
> Sent from the cxf-user mailing list archive at Nabble.com.
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Re: CXF is not handling SOAP fault
Posted by geecxf <am...@ge.com>.
Hi Aki,
Thanks for the response. Hopefully, this sheds some light on the situation:
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
[ main] ReflectionServiceFactoryBean INFO
Creating Service
{http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
WSDL:
file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
[ main] EntitlementServicePortType INFO
Outbound Message
---------------------------
ID: 1
Address: https://localhost:9443/services/EntitlementService
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml
Headers: {Accept=[*/*], Cookie=[$Version="1";
JSESSIONID=5FC3F057E02C1C836DB67F5CC82899DD; $Path=/]}
Payload: <getDecision
xmlns:ns2="http://dto.entitlement.identity.carbon.wso2.org/xsd"
xmlns="http://org.apache.axis2/xsd"><request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/></getDecision>
--------------------------------------
[ main] EntitlementServicePortType INFO
Inbound Message
----------------------------
ID: 1
Response-Code: 500
Encoding: UTF-8
Content-Type: text/xml;charset=UTF-8
Headers: {connection=[close], content-type=[text/xml;charset=UTF-8],
Date=[Mon, 09 Dec 2013 19:44:19 GMT], Server=[WSO2 Carbon Server],
transfer-encoding=[chunked]}
Payload: <ns:EntitlementServiceException
xmlns:ns="http://org.apache.axis2/xsd"><ns:EntitlementServiceException><axis2ns2:Message
xmlns:axis2ns2="http://entitlement.identity.carbon.wso2.org">Error occurred
while evaluating XACML
request</axis2ns2:Message></ns:EntitlementServiceException></ns:EntitlementServiceException>
--------------------------------------
[ main] PhaseInterceptorChain WARN
Interceptor for
{http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element
{http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
{http://org.apache.axis2/xsd}getDecisionResponse.
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at
org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
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 com.sun.proxy.$Proxy32.getDecision(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
[ main] AbstractResourceHelper WARN
Missing resource key=wso2isclient.internalServiceImplFailure
Exception occurred
com.ge.dsp.wso2.client.Wso2IdentityServerClientException:
wso2isclient.internalServiceImplFailure
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:569)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:216)
at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:508)
... 2 more
Caused by: javax.xml.ws.http.HTTPException
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:147)
at com.sun.proxy.$Proxy32.getDecision(Unknown Source)
... 7 more
Caused by: org.apache.cxf.interceptor.Fault: Unexpected wrapper element
{http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
{http://org.apache.axis2/xsd}getDecisionResponse.
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at
org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:229)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
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)
... 8 more
--
View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422p5737608.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: CXF is not handling SOAP fault
Posted by Aki Yoshida <el...@gmail.com>.
Could it be that he fault message that was returned from the server
was not wrapped in the fault element?
Can you get the wire-message transcription logs? (either activating
the logging feature of cxf or capturing the wire messages over the
transport)?
2013/12/6 geecxf <am...@ge.com>:
> Using the cxf-codegen-plugin (version 2.7.3), I have generated client
> ports/proxies for a SOAP service. When the SOAP service returns a successful
> response everything works fine. However, when the SOAP service returns a
> fault, it seems that CXF is not able to convert the SOAP fault in the
> correct auto-generated exception. Here is the stack trace for such an even:
>
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://authentication.services.core.carbon.wso2.org}AuthenticationAdmin
> from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/AuthenticationAdmin.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://entitlement.identity.carbon.wso2.org}EntitlementService from WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/EntitlementService.wsdl
> [ main] ReflectionServiceFactoryBean INFO
> Creating Service
> {http://service.ws.um.carbon.wso2.org}RemoteUserStoreManagerService from
> WSDL:
> file:/Users/212314537/Development/workspaces/dsp/dsp/dsp-gateway/authorization/wso2-is-client/target/classes/RemoteUserStoreManagerService.wsdl
> [ main] PhaseInterceptorChain WARN
> Interceptor for
> {http://entitlement.identity.carbon.wso2.org}EntitlementService#{http://entitlement.identity.carbon.wso2.org}getDecision
> has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unexpected wrapper element
> {http://org.apache.axis2/xsd}EntitlementServiceException found. Expected
> {http://org.apache.axis2/xsd}getDecisionResponse.
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:99)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:800)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1592)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1490)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
> at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 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 com.sun.proxy.$Proxy32.getDecision(Unknown Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.makeRemoteEntitlementServiceCall(Wso2IdentityServerClientImpl.java:506)
> at
> com.ge.dsp.wso2.client.Wso2IdentityServerClientImpl.authorize(Wso2IdentityServerClientImpl.java:214)
> at com.ge.dsp.pdp.wso2.StandaloneTest.main(StandaloneTest.java:167)
> [ main] AbstractResourceHelper WARN
> Missing resource key=wso2isclient.internalServiceImplFailure
>
>
> I'm wondering if I am missing a property or interceptor that is causing CXF
> to choke when trying to convert the SOAP fault into a Java exception.
>
> Please help.
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/CXF-is-not-handling-SOAP-fault-tp5737422.html
> Sent from the cxf-user mailing list archive at Nabble.com.