Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-4156

WildFly is not able to parse ejb-jar.xml of version 2.0

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 9.0.0.Beta1
    • 9.0.0.Alpha1
    • EJB
    • None

      • While using "ejb-jar.xml" of version 2.0 as following EAP/WildFly throws the parsing error:
      <?xml version="1.0"?>
      <!DOCTYPE ejb-jar
         PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
         "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
      <ejb-jar>
         <enterprise-beans>
            <message-driven>
               <ejb-name>ExampleMDB</ejb-name>
               <ejb-class&gt;test.mdb.ExampleMDB</ejb-class&gt;
               <transaction-type>Container</transaction-type>
               <message-driven-destination>
                  <destination-type>javax.jms.Queue</destination-type>
               </message-driven-destination>
               <resource-ref>
                  <res-ref-name>jms/QueueConnectionFactory</res-ref-name>
                  <res-type>javax.jms.QueueConnectionFactory</res-type>
                  <res-auth>Container</res-auth>
               </resource-ref>
            </message-driven>
         </enterprise-beans>
      </ejb-jar>
      
      • The following error is encountered at the time of deployment:
      17:40:04,405 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit."TestEJB.jar".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."TestEJB.jar".PARSE: JBAS018733: Failed to process phase PARSE of deployment "TestEJB.jar"
          at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
          at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
          at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45]
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45]
          at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
      Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS014185: Exception while parsing ejb-jar.xml: /content/TestEJB.jar/META-INF/ejb-jar.xml
          at org.jboss.as.ejb3.deployment.processors.EjbJarParsingDeploymentUnitProcessor.parseEjbJarXml(EjbJarParsingDeploymentUnitProcessor.java:250)
          at org.jboss.as.ejb3.deployment.processors.EjbJarParsingDeploymentUnitProcessor.deploy(EjbJarParsingDeploymentUnitProcessor.java:121)
          at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
          ... 5 more
      Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[14,10]
      Message: Unexpected element 'message-driven-destination' encountered
          at org.jboss.metadata.parser.util.MetaDataElementParser.unexpectedElement(MetaDataElementParser.java:109)
          at org.jboss.metadata.ejb.parser.spec.AbstractMetaDataParser.processElement(AbstractMetaDataParser.java:56)
          at org.jboss.metadata.ejb.parser.spec.AbstractNamedMetaDataWithDescriptionGroupParser.processElement(AbstractNamedMetaDataWithDescriptionGroupParser.java:67)
          at org.jboss.metadata.ejb.parser.spec.AbstractEnterpriseBeanMetaDataParser.processElement(AbstractEnterpriseBeanMetaDataParser.java:85)
          at org.jboss.metadata.ejb.parser.spec.AbstractMessageDrivenBeanParser.processElement(AbstractMessageDrivenBeanParser.java:94)
          at org.jboss.metadata.ejb.parser.spec.MessageDrivenBean31Parser.processElement(MessageDrivenBean31Parser.java:77)
          at org.jboss.metadata.ejb.parser.spec.MessageDrivenBean31Parser.processElement(MessageDrivenBean31Parser.java:37)
          at org.jboss.metadata.ejb.parser.spec.AbstractMetaDataParser.processElements(AbstractMetaDataParser.java:69)
          at org.jboss.metadata.ejb.parser.spec.MessageDrivenBean31Parser.parse(MessageDrivenBean31Parser.java:44)
          at org.jboss.metadata.ejb.parser.spec.EnterpriseBeansMetaDataParser.processElement(EnterpriseBeansMetaDataParser.java:99)
          at org.jboss.metadata.ejb.parser.spec.EnterpriseBeansMetaDataParser.processElement(EnterpriseBeansMetaDataParser.java:40)
          at org.jboss.metadata.ejb.parser.spec.AbstractMetaDataParser.processElements(AbstractMetaDataParser.java:69)
          at org.jboss.metadata.ejb.parser.spec.EnterpriseBeansMetaDataParser.parse(EnterpriseBeansMetaDataParser.java:75)
          at org.jboss.metadata.ejb.parser.spec.EnterpriseBeansMetaDataParser.parse(EnterpriseBeansMetaDataParser.java:68)
          at org.jboss.metadata.ejb.parser.spec.AbstractEjbJarMetaDataParser.processElement(AbstractEjbJarMetaDataParser.java:112)
          at org.jboss.metadata.ejb.parser.spec.AbstractEjbJarMetaDataParser.processElement(AbstractEjbJarMetaDataParser.java:39)
          at org.jboss.metadata.ejb.parser.spec.AbstractMetaDataParser.processElements(AbstractMetaDataParser.java:69)
          at org.jboss.metadata.ejb.parser.spec.EjbJarMetaDataParser.parseDocument(EjbJarMetaDataParser.java:110)
          at org.jboss.metadata.ejb.parser.spec.EjbJarMetaDataParser.parse(EjbJarMetaDataParser.java:54)
          at org.jboss.as.ejb3.deployment.processors.EjbJarParsingDeploymentUnitProcessor.parseEjbJarXml(EjbJarParsingDeploymentUnitProcessor.java:247)
          ... 7 more
      
      17:40:04,422 ERROR [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "TestEJB.jar" was rolled back with the following failure message: 
      {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"TestEJB.jar\".PARSE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"TestEJB.jar\".PARSE: JBAS018733: Failed to process phase PARSE of deployment \"TestEJB.jar\"
          Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS014185: Exception while parsing ejb-jar.xml: /content/TestEJB.jar/META-INF/ejb-jar.xml
          Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[14,10]
      Message: Unexpected element 'message-driven-destination' encountered"}}
      

      *NOTE:* According to the link [1] EJB2.0 is supported with EAP6 so ideally JBoss should be able to parse the "ejb-jar.xml" of version 2.0 DTDs.

      *NOTE:* there is a feature request seen for JBossAS7 for requesting support for ejb-jar.xml 2.0 DTDs [2]

      [1] https://access.redhat.com/site/articles/113373
      [2] https://issues.jboss.org/browse/JBMETA-354

      Version-Release number of selected component (if applicable):
      How reproducible:

      Steps to Reproduce:
      1. Deploy an MDB based EJB jar in EAP6/WildFly and use the ejb-jar.xml as mentioned in the issue description.

      Actual results:

      • EAP6/WildFly should be able to parse the ejb-jar.xml properly and should deploy the MDB properly.

      Expected results:

      • Deployment should be successful.

              istudens@redhat.com Ivo Studensky
              istudens@redhat.com Ivo Studensky
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: