You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by anoweb <an...@gmail.com> on 2008/06/27 16:54:41 UTC
Unmarshalling Error: trying to pass in data object
I have a webservice which exposes a method:
public void addPerson(Person person) { ... }
When I try to call it (with a client and soapUI) I get this error:
org.apache.cxf.interceptor.Fault: Unmarshalling Error: tried to access
classcom.sun.xml.bind.v2.runtime.reflect.opt.Const from class
com.foo.bean.Person$JaxbAccessorM_getId_setId_int
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:645)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:555)
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:64)
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:235)
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:120)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
at
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:151)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalAccessError: tried to access class
com.sun.xml.bind.v2.runtime.reflect.opt.Const from class
com.foo.bean.Person$JaxbAccessorM_getId_setId_int
at
com.foo.bean.Person$JaxbAccessorM_getId_setId_int.set(MethodAccessor_Integer.java:59)
at com.sun.xml.bind.v2.runtime.reflect.Accessor.receive(Accessor.java:171)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:486)
at
com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleEndElement(StAXStreamConnector.java:250)
at
com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:214)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:337)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:628)
... 31 more
The Person class is a simple POJO which has an "id", "firstName" and
"lastName". The SOAP xml request looks like:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://service.foo.com/">
<soapenv:Header/>
<soapenv:Body>
<ser:addPerson>
<person>
<firstName>Bill</firstName>
<lastName>Gates</lastName>
</person>
</ser:addPerson>
</soapenv:Body>
</soapenv:Envelope>
Any ideas?
--
View this message in context: http://www.nabble.com/Unmarshalling-Error%3A-trying-to-pass-in-data-object-tp18156939p18156939.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Unmarshalling Error: trying to pass in data object
Posted by anoweb <an...@gmail.com>.
Actually I just realized the SOAP request being sent looks like:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://service.foo.com/">
<soapenv:Header/>
<soapenv:Body>
<ser:addPerson>
<person>
<firstName>A</firstName>
<id>NaN</id>
<lastName>B</lastName>
</person>
</ser:addPerson>
</soapenv:Body>
</soapenv:Envelope>
hmm..have to figure out how to get my client not to send the the "ID"
property since it isn't needed.
--
View this message in context: http://www.nabble.com/Unmarshalling-Error%3A-trying-to-pass-in-data-object-tp18156939p18157000.html
Sent from the cxf-user mailing list archive at Nabble.com.