Hi Raymond, I created a JIRA issue for this problem which includes a test program that can be used to reproduce the issue. Here is the link: https://issues.apache.org/jira/browse/TUSCANY-3238
I tried this with both Apache Tuscany SCA Java 1.5 and 1.6 SNAPSHOT (r805992) and the result was the same. -----Original Message----- From: Raymond Feng [mailto:[email protected]] Sent: Tuesday, August 18, 2009 14:38 To: [email protected] Subject: Re: Issue using JAXB generated classes in SCA remotable service Do the generated subclasses extend from base classes? If so, I assume adding the subclass into the JAXBContext will automatically add the base classes. It seems the stracktrace is missing the part that complains about the JAXBContext. Can you post it here? We made some improvements in this area: http://svn.apache.org/viewvc?rev=795991&view=rev. Can you try if it helps? Thanks, Raymond -------------------------------------------------- From: "Phillips, Chad" <[email protected]> Sent: Tuesday, August 18, 2009 2:25 PM To: <[email protected]> Subject: Issue using JAXB generated classes in SCA remotable service > Hi All, > > I'm using SCA Java 1.5 and I'm running into an issue when data is being > returned from a service invocation for a Remotable service using the WS > binding. The service is returning instances of classes that were > generated using JAXB from multiple XSDs. These schemas include a number > of abstract elements as well as substitution groups. I'm not particularly > proficient with XSD so my terminology may be off but, I believe that the > problem is that since the concrete types for these various abstract > elements are not in the same package as the base types, they don't get > included the un/marshaller's context. They are also not in the WSDL > generated via the WS binding. The stack trace I'm seeing is at the bottom > of this e-mail. > > So, based on the stack trace, does it look like some missing namespaces > would cause this issue? If so, is there a way to explicitly include > additional namespaces such that they'll be properly included in the > un/marshaller's context? They would also need to be imported in the WSDL > generated by the WS binding. If at all possible I'd like to avoid having > to manually create or modify the WSDL or any of generated classes (JAXB / > JAXWS). > > Here is the stack trace: > > org.apache.axis2.AxisFault > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > at > org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:83) > at > org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:337) > at > org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:214) > at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448) > at > org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:45) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176) > at > org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) > at > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > at > org.apache.tuscany.sca.host.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:107) > at > org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:93) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > 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: javax.xml.stream.XMLStreamException > at > org.apache.tuscany.sca.databinding.jaxb.axiom.JAXBDataSource.serialize(JAXBDataSource.java:123) > at > org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerializeAndConsume(OMSourcedElementImpl.java:664) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:918) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:947) > at > org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(SOAPEnvelopeImpl.java:240) > at > org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:228) > at > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:947) > at > org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:471) > at > org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:79) > ... 30 more > > - Chad Phillips
