> On Jul 17, 2015, at 1:01 PM, Talkov, Roger <[email protected]> wrote: > > I’m seeing a problem with CXF and Service Now. > I send a request with a SOAP Body of: > > <ns2:getKeys xmlns:ns2="http://www.service-now.com/incident"> > <active>false</active> > </ns2:getKeys> > > And get a response with a Body of: > > <getKeysResponse> > <sys_id/> > <count>0</count> > </getKeysResponse> > > I get an error which I think is due to the request having a namespace but the > response doesn’t:
Yep. That response is not valid. It’s really a bug in their service. Might be worth reporting to them. You may be able to use CXF’s transformation feature (http://cxf.apache.org/docs/transformationfeature.html ) to have it rewrite the response to include the namespace. Definitely more involved than you were likely planning though. :( Dan > > org.apache.cxf.interceptor.Fault: Unexpected wrapper element getKeysResponse > found. Expected {http://www.service-now.com/incident}getKeysResponse. The > error message mentions the request, but this doesn’t seem right as I get a > response and the error doesn’t happen till after the response is received > > I’m using the dynamic client, I also ran wsdl2java and have attached the > output of the relevant files > > Full interceptor output: > > 07/17/15 09:32:37.259 sn1_2: LoggingOutInterceptorCXF: Outbound Message > --------------------------- > ID: 1 > Address: https://uc4.service-now.com/incident.do?SOAP > Encoding: UTF-8 > Http-Method: POST > Content-Type: text/xml > Headers: {Accept=[*/*], > SOAPAction=["http://www.service-now.com/incident/getKeys"]} > Payload: <soap:Envelope > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > <soap:Body> > <ns2:getKeys xmlns:ns2="http://www.service-now.com/incident"> > <active>false</active> > </ns2:getKeys> > </soap:Body> > </soap:Envelope> > > -------------------------------------- > 07/17/15 09:32:57.534 sn1_2: LoggingInInterceptorCXF: Inbound Message > ---------------------------- > ID: 1 > Response-Code: 200 > Encoding: UTF-8 > Content-Type: text/xml;charset=UTF-8 > Headers: {Cache-control=[no-cache,no-store,must-revalidate,max-age=-1], > content-type=[text/xml;charset=UTF-8], Date=[Fri, 17 Jul 2015 16:32:56 GMT], > Expires=[0], Pragma=[no-store,no-cache], Server=[ServiceNow], > Set-Cookie=[BIGipServerpool_uc4=528483850.42302.0000; path=/, > glide_user_route=glide.f687c7d0c68933ab87cd9cbb7fd6683c;secure; Expires=Wed, > 04-Aug-2083 19:46:44 GMT; Path=/; HttpOnly, > glide_user_session="U0N2MjozOTJmMzFmZDRmZDk4YTQwOGM1MTk3NDExMzEwYzcxYw=="; > Version=1; HttpOnly, > glide_user="U0N2MjozOTJmMzFmZDRmZDk4YTQwOGM1MTk3NDExMzEwYzcxYw=="; Version=1; > Max-Age=2147483647; Expires=Wed, 04-Aug-2083 19:46:44 GMT; HttpOnly, > glide_user_session="";secure; Expires=Thu, 01-Jan-1970 00:00:10 GMT; > HttpOnly, glide_user="";secure; Expires=Thu, 01-Jan-1970 00:00:10 GMT; > HttpOnly, JSESSIONID=BACDDDF64513246338E733AB9C7EDB66;Secure; Path=/; > HttpOnly], transfer-encoding=[chunked], X-TRANSACTION-TIME=[0:00:19.827], > X-TRANSACTION-TIME-MS=[19827]} > Payload: <SOAP-ENV:Envelope > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <SOAP-ENV:Body> > <getKeysResponse> > <sys_id/> > <count>0</count> > </getKeysResponse> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > > -------------------------------------- > ErrorMsg: Error building request object (7/17/15 9:32 AM) > Details: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> > <ns2:getKeys xmlns:ns2="http://www.service-now.com/incident"> > <active>false</active> > </ns2:getKeys> > > org.apache.cxf.interceptor.Fault: Unexpected wrapper element getKeysResponse > found. Expected {http://www.service-now.com/incident}getKeysResponse. > at > org.apache.cxf.wsdl.interceptors.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:106) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) > at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:802) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1644) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1533) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1335) > at > org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56) > at > org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215) > at > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) > at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651) > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) > at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516) > This email (including any attachments) may contain information which is > privileged, confidential, or protected. If you are not the intended > recipient, note that any disclosure, copying, distribution, or use of the > contents of this message and attached files is prohibited. If you have > received this email in error, please notify the sender and delete this email > and any attached files. <incident.zip> -- Daniel Kulp [email protected] - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com
