JiBX
  1. JiBX
  2. JIBX-194

JIBX only supports to marshal local objects not remote objects

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Cannot Reproduce
    • Affects Version/s: JiBX 1.1.5
    • Fix Version/s: JiBX 1.1.5
    • Component/s: core
    • Labels:
      None
    • Environment:
      JBOSS4.2.2
      JDK1.5
      AXIS2 1.3
      JIBX1.1.5
    • Number of attachments :
      1

      Description

      JIBX uses binding document to map the Java objects. But it only supports to marshal local objects not remote objects such as EJB object.

      However, for a same class, if JIBX gets its instance from local Web Service, it will be marshaled. Contrarily, if from EJB, JIBX has no ability to marshal.

      2007-11-28 09:34:38,656 INFO [STDOUT] getPersons()...start...
      2007-11-28 09:34:38,656 INFO [STDOUT] getPersons()...end...
      2007-11-28 09:34:56,715 INFO [STDOUT] getPersons()...start...
      2007-11-28 09:34:56,747 INFO [STDOUT] getPersons()...end...
      2007-11-28 09:34:56,747 ERROR [org.apache.axis2.transport.http.AxisServlet] com.accela.aa.aamain.cap.MyPersonModel.JiBX_binding_marshalAttr_1_0(Lorg/jibx/runtime/impl/MarshallingContext;)V
      java.lang.NoSuchMethodError: com.accela.aa.aamain.cap.MyPersonModel.JiBX_binding_marshalAttr_1_0(Lorg/jibx/runtime/impl/MarshallingContext;)V
      at com.accela.aa.aamain.cap.JiBX_bindingMyPersonModel_access.marshal()
      at org.apache.axis2.jibx.JiBXDataSource.marshal(JiBXDataSource.java:197)
      at org.apache.axis2.jibx.JiBXDataSource.serialize(JiBXDataSource.java:267)
      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.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:45)
      at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
      at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
      at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
      at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:120)
      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.valves.AccessLogValve.invoke(AccessLogValve.java:562)
      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.Http11AprProcessor.process(Http11AprProcessor.java:856)
      at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:566)
      at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
      at java.lang.Thread.run(Thread.java:595)
      2007-11-28 09:46:29,502 INFO [STDOUT] [2007-11-28 09:46:29,502] DiagnosticThread - INFO -
      2007-11-28 09:46:29,502 INFO [com.accela.diagnostics.DiagnosticThread]

        Activity

        Hide
        Dennis Sosnoski added a comment -

        JiBX is able to work with objects obtained from RMI providing the objects use the bound classes (and not otherwise identical classes which have not been modified by the binding compiler). The error message you're getting indicates that you're trying to marshal data from instances of the class which don't match those generated by the binding compiler. This could happen in several ways, but the most common is that you probably have two different versions of the classes in your application, one set modified and another set not.

        Please try to verify the instances of the classes within your application, and make sure that the classes used by the RMI component (EJB client) include the JiBX binding information.

        Show
        Dennis Sosnoski added a comment - JiBX is able to work with objects obtained from RMI providing the objects use the bound classes (and not otherwise identical classes which have not been modified by the binding compiler). The error message you're getting indicates that you're trying to marshal data from instances of the class which don't match those generated by the binding compiler. This could happen in several ways, but the most common is that you probably have two different versions of the classes in your application, one set modified and another set not. Please try to verify the instances of the classes within your application, and make sure that the classes used by the RMI component (EJB client) include the JiBX binding information.

          People

          • Assignee:
            Dennis Sosnoski
            Reporter:
            Troy Yang
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: