Dennis,  
I really appreciate that you direct me to this direction.  Would it be the 
right rule to add to spring.xml?
Thanks,
 <beanid="transformFeature"class="org.apache.cxf.feature.StaxTransformFeature">       
 <propertyname="inTransformElements">                
<entrykey="{ns2}id"value="{ns2}id=id"/>
               <entrykey="{ns2}status"value="{ns2}status=status"/>
               
<entrykey="{ns2}systemId"value="{ns2}systemId=systemId"/>          </map>      
</property></bean>          <map> 
 
If I want to transform from 
 <platformServiceResult>
        
        <ns2:status>SUCCESS</ns2:status>
        <ns2:systemId>ebilprodapp103</ns2:systemId>
to
         <id>9faa0d0e-1932-4064-95ec-6a0e10da4c60</id>
         <status>SUCCESS</status>
         <systemId>ebilprodapp103</systemId>
 </platformServiceResult>
 


________________________________
From: Dennis Sosnoski <[email protected]>
To: [email protected] 
Sent: Friday, May 11, 2012 8:25 AM
Subject: Re: [javax.xml.bind.UnmarshalException: unexpected element

You should be able to use the Transformation feature to modify the response 
before it's passed to JAXB: 
http://cxf.apache.org/docs/transformationfeature.html

  - Dennis


On 05/11/2012 11:17 AM, Steve Kim wrote:
> That's also my findings.  However, this response is from 3rd party.  3rd 
> party won't be able to update within a short period of time.  Only options at 
> this point is that we have to do something about it.  Someone recommended to 
> manually update package-info.java to include as below:
> However, this will cause not to put the name space on the request, 3rd party 
> can not use the request.  I'm using cxf2.4.6 with jaxb-impl.2.1.7.  Is there 
> any workaround so that I can resolve this?
>  @
> elementFormDefault=XmlNsForm.javax.xml.bind.annotation.XmlSchema(namespace = 
> "http://xxx.com/binders/general/2010/1/1";, QUALIFIED)
>        
> ________________________________
> From: Dennis Sosnoski<[email protected]>
> To: [email protected]
> Sent: Saturday, May 12, 2012 8:02 AM
> Subject: Re: [javax.xml.bind.UnmarshalException: unexpected element
> 
> Hi Steve,
> 
> The schema and message are somewhat garbled, but judging from the error 
> message the problem is that the response has a namespace for the id element 
> (and presumably others) while your code expects this not to have a namespace. 
> It looks like the schema matches your code, since it does not specify 
> elementFormDefault='qualified' and without this child elements do not use 
> namespaces.
> 
>    - Dennis
> 
> Dennis M. Sosnoski
> Java SOA and Web Services Consulting<http://www.sosnoski.com/consult.html>
> CXF and Web Services Security Training<http://www.sosnoski.com/training.html>
> Web Services Jump-Start<http://www.sosnoski.com/jumpstart.html>
> 
> 
> On 05/11/2012 10:45 AM, Steve Kim wrote:
>> I'm getting the exception while it's parsing the response from 3rd party as 
>> below:  Can someone please help as this is very critical failure on our 
>> service?
>>    Thanks for your time
>>    org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for 
>>{http://xxx.com/binders/general/2010/1/1}BinderServiceService#{http://xxxx.com/binders/general/2010/1/1}processRequest
>> has thrown exception, unwinding now
>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element 
>> (uri:"http://xxx.com/common/general/2010/1/1/platformServiceResult";, 
>> local:"id"). Expected elements 
>> are<{}id>,<{}information>,<{}systemMessageNumber>,<{}status>,<{}newToken>,<{}systemMessage>,<{}systemId>,<{}parameters>
>> at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> at org.apache.cxf.jaxb.io.DataReaderImpl.read(
>> at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> at org.apache.cxf.endpoint.ClientImpl.onMessage(
>> at 
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(
>> at 
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(
>> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(
>> at org.apache.cxf.io.CachedOutputStream.close(
>> at org.apache.cxf.transport.AbstractConduit.close(
>> at org.apache.cxf.transport.http.HTTPConduit.close(
>> at 
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(
>> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> at org.apache.cxf.endpoint.ClientImpl.doInvoke(
>> at org.apache.cxf.endpoint.ClientImpl.invoke(
>> at org.apache.cxf.endpoint.ClientImpl.invoke(
>> at org.apache.cxf.endpoint.ClientImpl.invoke(
>> at org.apache.cxf.frontend.ClientProxy.invokeSync(
>> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(
>> at $Proxy69.processRequest(Unknown Source)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(
>> at sun.reflect.NativeMethodAccessorImpl.invoke(
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> at java.lang.reflect.Method.invoke(
>> ......
>> at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(
>> at 
>> org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run(
>> at 
>> org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(
>> at org.springframework.test.context.junit4.SpringMethodRoadie.runTest(
>> at org.springframework.test.context.junit4.SpringMethodRoadie.run(
>> at 
>> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(
>> at org.junit.internal.runners.JUnit4ClassRunner.runMethods(
>> at org.junit.internal.runners.JUnit4ClassRunner$1.run(
>> at org.junit.internal.runners.ClassRoadie.runUnprotected(
>> at org.junit.internal.runners.ClassRoadie.runProtected(
>> at 
>> org.junit.internal.runners.JUnit4ClassRunner.run(JAXBEncoderDecoder.java:801)JAXBEncoderDecoder.java:642)DataReaderImpl.java:156)DocLiteralInInterceptor.java:109)PhaseInterceptorChain.java:263)ClientImpl.java:795)HTTPConduit.java:1626)HTTPConduit.java:1493)HTTPConduit.java:1401)CacheAndWriteOutputStream.java:47)CachedOutputStream.java:194)AbstractConduit.java:56)HTTPConduit.java:648)MessageSenderInterceptor.java:62)PhaseInterceptorChain.java:263)ClientImpl.java:531)ClientImpl.java:461)ClientImpl.java:364)ClientImpl.java:317)ClientProxy.java:88)JaxWsClientProxy.java:134)Native
>>  
>> Method)NativeMethodAccessorImpl.java:39)DelegatingMethodAccessorImpl.java:25)Method.java:597)at
>>    
>>org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:160)SpringMethodRoadie.java:233)SpringMethodRoadie.java:333)SpringMethodRoadie.java:217)SpringMethodRoadie.java:197)SpringMethodRoadie.java:143)SpringJUnit4ClassRunner.java:160)JUnit4ClassRunner.java:51)JUnit4ClassRunner.java:44)ClassRoadie.java:27)ClassRoadie.java:37)JUnit4ClassRunner.java:42)Caused
>> by: javax.xml.bind.UnmarshalException- with linked exception:
>> [
>> at 
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(
>> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> ... 52 more
>> Caused by:
>> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(
>> at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(
>> at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(
>> at 
>> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(
>> at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(
>> at com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(
>> at 
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(
>> at 
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(
>> at 
>> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(
>> at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(
>> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> ... 54 more
>> Caused by:
>> ... 65 morejavax.xml.bind.UnmarshalException: unexpected element 
>> (uri:"http://xxxx.com/common/general/2010/1/1/platformServiceResult";, 
>> local:"id"). Expected elements 
>> are<{}id>,<{}information>,<{}systemMessageNumber>,<{}status>,<{}newToken>,<{}systemMessage>,<{}systemId>,<{}parameters>]UnmarshallerImpl.java:421)UnmarshallerImpl.java:360)UnmarshallerImpl.java:337)JAXBEncoderDecoder.java:778)javax.xml.bind.UnmarshalException:
>>  unexpected element 
>> (uri:"http://schemas.benefitfocus.com/common/general/2010/1/1/platformServiceResult";,
>>  local:"id"). Expected elements are
>>    
>><{}id>,<{}information>,<{}systemMessageNumber>,<{}status>,<{}newToken>,<{}systemMessage>,<{}systemId>,<{}parameters>UnmarshallingContext.java:609)Loader.java:244)Loader.java:239)Loader.java:116)Loader.java:101)StructureLoader.java:245)UnmarshallingContext.java:452)UnmarshallingContext.java:433)StAXStreamConnector.java:275)StAXStreamConnector.java:209)UnmarshallerImpl.java:358)javax.xml.bind.UnmarshalException:
>> unexpected element 
>>(uri:"http://schemas.benefitfocus.com/common/general/2010/1/1/platformServiceResult";,
>> local:"id"). Expected elements 
>>are<{}id>,<{}information>,<{}systemMessageNumber>,<{}status>,<{}newToken>,<{}systemMessage>,<{}systemId>,<{}parameters>
>>            Below is schema def:
>> -----------------------------
>> <?xml version='1.0'
>>    
>>encoding='UTF-8'?><xs:schemaxmlns:tns=http://xxx.com/binders/general/2010/1/1xmlns:xs="http://www.w3.org/2001/XMLSchema"version="1.0"targetNamespace=http://xxx.com/binders/general/2010/1/1><xs:elementname="processRequestResponse"type="tns:processRequestResponse"/></xs:complexT<xs:complexTypename="processRequestResponse"><xs:sequence><xs:elementname="return"type="tns:binderReturn"minOccurs="0"/></xs:sequence></xs:complexType><xs:complexTypename="binderReturn"><xs:sequence>
>  
><xs:elementname="binderResponse"type="tns:binderResponse"minOccurs="0"/><xs:elementname="platformServiceResult"type="tns:platformServiceResult"minOccurs="0"/></xs:sequence></xs:complexType><xs:complexTypename="binderResponse"><xs:sequence><xs:elementname="errorCode"type="xs:string"minOccurs="0"/><xs:elementname="errorMessage"type="xs:string"minOccurs="0"/><xs:elementname="requestId"type="xs:string"minOccurs="0"/><xs:elementname="source"type="xs:string"minOccurs="0"/><xs:elementname="
>> status"type="xs:string"minOccurs="0"/><xs:elementname="transactionId"type="xs:string"minOccurs="0"/></xs:sequence></xs:complexType><xs:complexTypename="platformServiceResult"><xs:sequence><xs:elementname="id"type="xs:string"minOccurs="0"/><xs:elementname="information"type="xs:string"nillable="true"minOccurs="0"maxOccurs="unbounded"/><xs:elementname="parameters"type="xs:string"nillable="true"minOccurs="0"maxOccurs="unbounded"/><xs:elementname="status"type="tns:platformServiceStatus"minOccurs="0"/><xs:elementname="systemId"type="xs:string"minOccurs="0"/><xs:elementname="systemMessage"type="xs:string"minOccurs="0"/><xs:elementname="systemMessageNumber"type="xs:int"minOccurs="0"/><xs:elementname="newToken"type="xs:string"minOccurs="0"/></xs:sequence><xs:simpleTypename="platformServiceStatus"><xs:restrictionbase="xs:string"><xs:enumerationvalue="SUCCESS"/></xs:restriction></xs:simpleType></
>> ------------------------------------------------
>>    ------------------------ Below is WSDL 
>>-------------------------<definitionsxmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:tns="http://services.benefitfocus.com/binders/general/2010/1/1"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns="http://schemas.xmlsoap.org/wsdl/"name="BinderService"targetNamespace=http://xxx.com/binders/general/2010/1/1><types><xsd:schema><xsd:importnamespace=http://xxx.com/binders/general/2010/1/1schemaLocation="see
>>    
>>above"/></xsd:schema></types><messagename="processRequestResponse"><partname="parameters"element="tns:processRequestResponse"/></message><soap:operationsoapAction=""/><input><soap:bodyuse="literal"/></input><output><soap:bodyuse="literal"/></output></operation><operationname="processRequest"><soap:operationsoapAction=""/><input><soap:bodyuse="literal"/></input><output><soap:bodyuse="literal"/></output></operation></binding><servicename="BinderService"><portname="BinderServicePort"binding="tns:BinderServicePortBinding"><soap:addresslocation=https://xxx.com/eProxy/service/Servicexmlns=""/><apwsdl:targetWSDLxmlns:ap=http://yyy.com/amfxmlns:apwsdl="urn:zzz.wsdl"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";><apwsdl:URL>xxxxxx</apwsdl:URL><apwsdl:agentIDxxxxxx</apwsdl:agentID><apwsdl:uwsID>xxxxxx</apwsdl:uwsID><apwsdl:uwsLocalname>xxxxxx</apwsdl:uwsLocalname></apwsdl:targetWSDL></port></
>> ---------------- end of wsdl ----------------
>>    --------------- soap response from Oracle Jax-ws server -------<?xml 
>>version='1.0' 
>>encoding='UTF-8'?><S:Envelopexmlns:S="http://schemas.xmlsoap.org/soap/envelope/";><S:Body><ns3:processRequestResponsexmlns:ns2=http://xxxx.com/common/general/2010/1/1/platformServiceResultxmlns:ns3=http://xxxx.com/binders/general/2010/1/1><return><responseDate>2012-05-08-04:00</responseDate><binderResponse><requestId>904356447_201208</requestId><source>eHealth</source><status>succeeded</status></binderResponse><platformServiceResult><ns2:id>9faa0d0e-1932-4064-95ec-6a0e10da4c60</ns2:id><ns2:status>SUCCESS</ns2:status><ns2:systemId>ebilprodapp103</ns2:systemId></platformServiceResult></return></ns3:processRequestResponse></</S:Body>S:Envelope>
>>    </service>definitions>xs:schema></xs:complexType>



 
 <platformServiceResult>
 </platformServiceResult><ns2:id>9faa0d0e-1932-4064-95ec-6a0e10da4c60</ns2:id>

Reply via email to