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.