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.