Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 37205 invoked from network); 2 Aug 2008 17:16:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Aug 2008 17:16:14 -0000 Received: (qmail 45983 invoked by uid 500); 2 Aug 2008 17:16:13 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 45943 invoked by uid 500); 2 Aug 2008 17:16:12 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 45932 invoked by uid 99); 2 Aug 2008 17:16:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 02 Aug 2008 10:16:12 -0700 X-ASF-Spam-Status: No, hits=-1999.8 required=10.0 tests=ALL_TRUSTED,WHOIS_MYPRIVREG X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 02 Aug 2008 17:15:17 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 3E47A234C18C for ; Sat, 2 Aug 2008 10:15:44 -0700 (PDT) Message-ID: <657963266.1217697344240.JavaMail.jira@brutus> Date: Sat, 2 Aug 2008 10:15:44 -0700 (PDT) From: "Manu T George (JIRA)" To: dev@geronimo.apache.org Subject: [jira] Updated: (GERONIMO-3793) "Not Known To This Context" JAXBException when attempting to return complex data type from a @WebMethod In-Reply-To: <7507585.1201488575288.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/GERONIMO-3793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Manu T George updated GERONIMO-3793: ------------------------------------ Attachment: G3793 -r680814.patch Patch Tested with both POJO and EJB Web Services with geronimo-tomcat-axis2 Not tested with jetty yet as geronimo jetty is throwing some NIO related exception in my windows machine and not starting. Will test it if in linux later for geronimo-jetty-cxf > "Not Known To This Context" JAXBException when attempting to return complex data type from a @WebMethod > ------------------------------------------------------------------------------------------------------- > > Key: GERONIMO-3793 > URL: https://issues.apache.org/jira/browse/GERONIMO-3793 > Project: Geronimo > Issue Type: Bug > Security Level: public(Regular issues) > Components: webservices > Affects Versions: 2.0.x, 2.1 > Environment: Windows XP x86-32, IBM J9 1.5.0 SR5, Geronimo w/ Tomcat+OpenEJB+Axis2 > Reporter: Cedric Hurst > Assignee: Jarek Gawor > Priority: Critical > Attachments: ComplexDataTypeWSExampleEAR.ear, G3793 -r680814.patch, geronimo.log > > Original Estimate: 0h > Remaining Estimate: 0h > > I'm attempting to return a @XmlRootElement annotated object called "Customer" from a @WebMethod. When calling the service, I get the following error in the server log: > javax.xml.bind.JAXBException: [Lcom.gmail.at.cedrichurst.complexDataTypeWSExampleEJB.domain.Customer; is not known to this context > at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:223) > at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:238) > at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:85) > at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:127) > at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:244) > at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:251) > at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:33) > at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:461) > at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:292) > ... 48 more > From what I understand, the return type should be added to the JaxB context automatically. > Just to make sure I wasn't doing something wrong in my Customer class, I added another method to my bean that returned a java.util.List of Strings. When calling this method, I also got the same sort of error: > [javax.xml.bind.JAXBException: java.util.List is not known to this context] > javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException > - with linked exception: > [javax.xml.bind.JAXBException: java.util.List is not known to this context] > at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:174) > at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:69) > at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:127) > at org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl$2.run(JAXBBlockImpl.java:405) > at org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:76) > at org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl.marshalByType(JAXBBlockImpl.java:321) > at org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl._outputFromBO(JAXBBlockImpl.java:209) > at org.apache.axis2.jaxws.message.impl.BlockImpl.outputTo(BlockImpl.java:327) > at org.apache.axis2.jaxws.message.impl.BlockImpl.serialize(BlockImpl.java:252) > at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerializeAndConsume(OMSourcedElementImpl.java:599) > at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:785) > at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814) > at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:785) > at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814) > at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(SOAPEnvelopeImpl.java:237) > at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:225) > at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:814) > at org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:421) > at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:68) > at org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:294) > at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:211) > at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396) > at org.apache.geronimo.axis2.ejb.EJBInterceptor.intercept(EJBInterceptor.java:94) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:615) > at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:146) > at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129) > at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:73) > at org.apache.openejb.core.stateless.StatelessContainer.invokeWebService(StatelessContainer.java:263) > at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:199) > at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) > at org.apache.geronimo.axis2.ejb.EJBMessageReceiver.receive(EJBMessageReceiver.java:88) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) > at org.apache.geronimo.axis2.Axis2WebServiceContainer.processPOSTRequest(Axis2WebServiceContainer.java:395) > at org.apache.geronimo.axis2.Axis2WebServiceContainer.doService2(Axis2WebServiceContainer.java:265) > at org.apache.geronimo.axis2.Axis2WebServiceContainer.doService(Axis2WebServiceContainer.java:204) > at org.apache.geronimo.axis2.Axis2WebServiceContainer.invoke(Axis2WebServiceContainer.java:167) > at org.apache.geronimo.tomcat.TomcatEJBWebServiceContext$EJBWebServiceValve.invoke(TomcatEJBWebServiceContext.java:180) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:801) > According to a thread in the OpenEJB mailing list: > http://www.nabble.com/Returning-complex-data-types-in-%40WebResult-tc15114306.html > ...it doesn't seem that these errors should be happening. > I attempted to test this under CXF, but ran into another issue which is outlined in another JIRA. > EAR file and geronimo.log attached. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.