You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Freeman Fang (JIRA)" <ji...@apache.org> on 2018/10/17 11:46:00 UTC

[jira] [Resolved] (CXF-7879) Unmarshalling Error: null

     [ https://issues.apache.org/jira/browse/CXF-7879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Freeman Fang resolved CXF-7879.
-------------------------------
    Resolution: Information Provided

> Unmarshalling Error: null
> -------------------------
>
>                 Key: CXF-7879
>                 URL: https://issues.apache.org/jira/browse/CXF-7879
>             Project: CXF
>          Issue Type: Bug
>          Components: JAXB Databinding
>    Affects Versions: 3.1.12
>            Reporter: Pawel Trela
>            Assignee: Freeman Fang
>            Priority: Major
>             Fix For: Invalid
>
>
> One of the methods of my SOAP web service has field defined as:
> {code:java}
> <xs:element name="value" type="xs:decimal" minOccurs="1" maxOccurs="1" nillable="false"/>
> {code}
> When I call web service with non-number value (e.g. 'TEXT'), it gives _Fault_ response:
> {code:java}
> <soap:Fault>
> <soap:Code>
> <soap:Value>soap:Sender</soap:Value>
> </soap:Code>
> <soap:Reason>
> <soap:Text xml:lang="en">Unmarshalling Error: null</soap:Text>
> </soap:Reason>
> </soap:Fault>
> {code}
> Stacktrace:
> {code:java}
> org.apache.cxf.interceptor.Fault: Unmarshalling Error: null 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:908) ~[cxf-rt-databinding-jaxb-3.1.12.jar:3.1.12]
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:714) ~[cxf-rt-databinding-jaxb-3.1.12.jar:3.1.12]
> at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:179) ~[cxf-rt-databinding-jaxb-3.1.12.jar:3.1.12]
> at org.apache.cxf.wsdl.interceptors.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:194) ~[cxf-rt-wsdl-3.1.12.jar:3.1.12]
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [cxf-core-3.1.12.jar:3.1.12]
> at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-core-3.1.12.jar:3.1.12]
> ...
> Caused by: java.lang.NumberFormatException
> at java.math.BigDecimal.<init>(BigDecimal.java:494) ~[?:1.8.0_131]
> at java.math.BigDecimal.<init>(BigDecimal.java:383) ~[?:1.8.0_131]
> at java.math.BigDecimal.<init>(BigDecimal.java:806) ~[?:1.8.0_131]
> at com.sun.xml.bind.DatatypeConverterImpl._parseDecimal(DatatypeConverterImpl.java:150) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$22.parse(RuntimeBuiltinLeafInfoImpl.java:804) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$22.parse(RuntimeBuiltinLeafInfoImpl.java:802) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.parse(TransducedAccessor.java:245) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.LeafPropertyLoader.text(LeafPropertyLoader.java:65) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.text(UnmarshallingContext.java:589) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.text(ValidatingUnmarshaller.java:130) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.text(InterningXmlVisitor.java:93) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.processText(StAXStreamConnector.java:338) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleEndElement(StAXStreamConnector.java:216) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:185) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:415) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:394) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:857) ~[cxf-rt-databinding-jaxb-3.1.12.jar:3.1.12]{code}
> For comparison, when the field is defined as:
> {code:java}
> <xs:element name="value" type="xs:unsignedShort" default="1" minOccurs="1" maxOccurs="1" nillable="false"/>
> {code}
> and I call web service with non-number value, it gives the following response:
> {code:java}
> <soap:Fault>
> <soap:Code>
> <soap:Value>soap:Sender</soap:Value>
> </soap:Code>
> <soap:Reason>
> <soap:Text xml:lang="en">Unmarshalling Error: Not a number: TEXT</soap:Text>
> </soap:Reason>
> </soap:Fault>
> {code}
> Stacktrace:
> {code:java}
> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Not a number: TEXT 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:908) ~[cxf-rt-databinding-jaxb-3.1.12.jar:3.1.12]
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:714) ~[cxf-rt-databinding-jaxb-3.1.12.jar:3.1.12]
> at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:179) ~[cxf-rt-databinding-jaxb-3.1.12.jar:3.1.12]
> at org.apache.cxf.wsdl.interceptors.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:194) ~[cxf-rt-wsdl-3.1.12.jar:3.1.12]
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [cxf-core-3.1.12.jar:3.1.12]
> at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-core-3.1.12.jar:3.1.12]
> ...
> Caused by: java.lang.NumberFormatException: Not a number: TEXT
> at com.sun.xml.bind.DatatypeConverterImpl._parseInt(DatatypeConverterImpl.java:124) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$17.parse(RuntimeBuiltinLeafInfoImpl.java:738) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$17.parse(RuntimeBuiltinLeafInfoImpl.java:736) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.TextLoader.text(TextLoader.java:69) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.text(UnmarshallingContext.java:589) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.text(ValidatingUnmarshaller.java:130) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.text(InterningXmlVisitor.java:93) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.processText(StAXStreamConnector.java:338) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleEndElement(StAXStreamConnector.java:216) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:185) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:415) ~[jaxb-impl-2.2.11.jar:2.2.11]
> at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:394) ~[jaxb-impl-2.2.11.jar:2.2.11]{code}
> Is it possible that response for _decimal_ was more detailed, as for _unsignedShort?_



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)