Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-24065

[GSS](7.4.z) CNF org.apache.xerces.jaxp.datatype.SerializedXMLGregorianCalendar when EJB uses transfer object includes javax.xml.datatype.XMLGregorianCalendar

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Can't Do
    • Icon: Major Major
    • None
    • 7.3.0.GA, 7.4.7.GA
    • EJB
    • None
    • False
    • None
    • False
    • If Release Note Needed, Set a Value
    • Set a Value
    • Hide

      Declare a dependency on org.apache.xerces such as in jboss-deployment-structure.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
        <deployment>
          <dependencies>
            <module name="org.apache.xerces" export="true"/>
          </dependencies>
        </deployment>
      </jboss-deployment-structure> 

      Or for all deployments via ee subsystem:

      [standalone@embedded /] /subsystem=ee:write-attribute(name=global-modules,value=[{name=org.apache.xerces}]) 
              <subsystem xmlns="urn:jboss:domain:ee:6.0">
                  <global-modules>
                      <module name="org.apache.xerces"/>
                  </global-modules> 
      Show
      Declare a dependency on org.apache.xerces such as in jboss-deployment-structure.xml: <?xml version= "1.0" encoding= "UTF-8" ?> <jboss-deployment-structure xmlns= "urn:jboss:deployment-structure:1.2"               xmlns:xsi= "http: //www.w3.org/2001/XMLSchema-instance" >   <ear-subdeployments-isolated> false </ear-subdeployments-isolated>   <deployment>     <dependencies>       <module name= "org.apache.xerces" export= " true " />     </dependencies>   </deployment> </jboss-deployment-structure> Or for all deployments via ee subsystem: [standalone@embedded /] /subsystem=ee:write-attribute(name=global-modules,value=[{name=org.apache.xerces}])         <subsystem xmlns= "urn:jboss:domain:ee:6.0" >             <global-modules>                 <module name= "org.apache.xerces" />             </global-modules>
    • Hide
      Deploy jsf-ejb-ser.war
      http://localhost:8080/jsf-ejb-ser/index.jsf
      Click Invoke 
      Show
      Deploy jsf-ejb-ser.war http: //localhost:8080/jsf-ejb-ser/index.jsf Click Invoke

      If an EJB returns a Response that includes javax.xml.datatype.XMLGregorianCalendar such as:

      import java.io.Serializable;
      import javax.xml.datatype.XMLGregorianCalendar;
      
      public class Response implements Serializable {
          private XMLGregorianCalendar xmlGregorianCalendar;
      
          public Response() { }
      
          public void setXmlGregorianCalendar(XMLGregorianCalendar xmlGregorianCalendar) {
              this.xmlGregorianCalendar = xmlGregorianCalendar;
          }
          public XMLGregorianCalendar getXmlGregorianCalendar() {
              return xmlGregorianCalendar;
          }
      } 

      It will fail with a ClassNotFoundException.

      This can be worked around by depending on the org.apache.xerces module, but this should not be required, since the application is not directly referencing the implementation class.

      13:33:26,648 ERROR [stderr] (default task-1) Caused by: java.lang.ClassNotFoundException: org.apache.xerces.jaxp.datatype.SerializedXMLGregorianCalendar from [Module "deployment.jsf-ejb-ser.war" from Service Module Loader] 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255) 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410) 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116) 13:33:26,648 ERROR [stderr] (default task-1) at java.lang.Class.forName0(Native Method) 13:33:26,648 ERROR [stderr] (default task-1) at java.lang.Class.forName(Class.java:348) 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.marshalling.AbstractClassResolver.loadClass(AbstractClassResolver.java:129) 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.marshalling.AbstractClassResolver.resolveClass(AbstractClassResolver.java:110) 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.ejb.protocol.remote.EJBServerChannel$ServerClassResolver.resolveClass(EJBServerChannel.java:1209) 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:1048) 13:33:26,648 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1381) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:298) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:246) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1879) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1793) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1421) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:298) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:231) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.ejb.protocol.remote.EJBServerChannel$RemotingInvocationRequest.getRequestContent(EJBServerChannel.java:845) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.as.ejb3.remote.AssociationImpl.receiveInvocationRequest(AssociationImpl.java:149) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.ejb.protocol.remote.EJBServerChannel$ReceiverImpl.handleInvocationRequest(EJBServerChannel.java:477) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.ejb.protocol.remote.EJBServerChannel$ReceiverImpl.handleMessage(EJBServerChannel.java:212) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.remoting3.remote.RemoteConnectionChannel.lambda$handleMessageData$3(RemoteConnectionChannel.java:432) 13:33:26,649 ERROR [stderr] (default task-1) at org.jboss.remoting3.EndpointImpl$TrackingExecutor.lambda$execute$0(EndpointImpl.java:991) 13:33:26,649 ERROR [stderr] (default task-1) ... 6 more

       

            rchakrab Ranabir Chakraborty
            rhn-support-bmaxwell Brad Maxwell
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: