<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7638.1">
<TITLE>Problem parsing ejb-jar.xml file</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<P><FONT SIZE=2>Dear All<BR>
<BR>
I am encountering a parsing problem when trying to deploy a jar containing some EJBs. The deployments is part of a test case in the AS testsuite, which has been there for some time. It appears as though the offending file parses correctly under Eclipse (thanks, Clebert).<BR>
<BR>
Have there been changes which may account for this problem?<BR>
<BR>
output from AS console:<BR>
-----------------------<BR>
10:55:20,140 ERROR [EjbParsingDeployer] Error during deployment: jar:<A HREF="file:/home/rachmatowicz/jms-trunk/testsuite/output/lib/jmsra.jar!/">file:/home/rachmatowicz/jms-trunk/testsuite/output/lib/jmsra.jar!/</A><BR>
org.jboss.deployers.spi.DeploymentException: Error parsing meta data META-INF/ejb-jar.xml<BR>
at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)<BR>
at org.jboss.deployers.plugins.deployers.helpers.ObjectModelFactoryDeployer.parse(ObjectModelFactoryDeployer.java:87) at org.jboss.deployers.plugins.deployers.helpers.AbstractParsingDeployer.parse(AbstractParsingDeployer.java:145)<BR>
at org.jboss.deployers.plugins.deployers.helpers.AbstractParsingDeployer.createMetaData(AbstractParsingDeployer.java:112)<BR>
at org.jboss.deployers.plugins.deployers.helpers.AbstractParsingDeployer.createMetaData(AbstractParsingDeployer.java:88)<BR>
at org.jboss.deployment.EjbParsingDeployer.deploy(EjbParsingDeployer.java:95)<BR>
at org.jboss.deployers.plugins.deployer.AbstractSimpleDeployer.commitDeploy(AbstractSimpleDeployer.java:52)<BR>
at org.jboss.deployers.plugins.deployer.DeployerWrapper.commitDeploy(DeployerWrapper.java:145)<BR>
at org.jboss.deployers.plugins.deployment.MainDeployerImpl.commitDeploy(MainDeployerImpl.java:440)<BR>
at org.jboss.deployers.plugins.deployment.MainDeployerImpl.process(MainDeployerImpl.java:381)<BR>
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:795)<BR>
at org.jboss.deployment.MainDeployer.redeploy(MainDeployer.java:570)<BR>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<BR>
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<BR>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<BR>
at java.lang.reflect.Method.invoke(Method.java:585)<BR>
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)<BR>
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)<BR>
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)<BR>
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)<BR>
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)<BR>
at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)<BR>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<BR>
at java.lang.reflect.Method.invoke(Method.java:585)<BR>
at org.jboss.jmx.connector.invoker.InvokerAdaptorService.invoke(InvokerAdaptorService.java:266)<BR>
at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)<BR>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<BR>
at java.lang.reflect.Method.invoke(Method.java:585)<BR>
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)<BR>
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)<BR>
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:138)<BR>
at org.jboss.mx.server.Invocation.invoke(Invocation.java:90)<BR>
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:140)<BR>
at org.jboss.mx.server.Invocation.invoke(Invocation.java:90)<BR>
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)<BR>
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)<BR>
at org.jboss.invocation.jrmp.server.JRMPProxyFactory.invoke(JRMPProxyFactory.java:179)<BR>
at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)<BR>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<BR>
at java.lang.reflect.Method.invoke(Method.java:585)<BR>
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)<BR>
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)<BR>
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)<BR>
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)<BR>
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)<BR>
at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:816)<BR>
at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:417)<BR>
at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)<BR>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<BR>
at java.lang.reflect.Method.invoke(Method.java:585)<BR>
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)<BR>
at sun.rmi.transport.Transport$1.run(Transport.java:153)<BR>
at java.security.AccessController.doPrivileged(Native Method)<BR>
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)<BR>
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)<BR>
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)<BR>
at java.lang.Thread.run(Thread.java:595)<BR>
Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: jar:<A HREF="file:/home/rachmatowicz/jms-trunk/testsuite/output/lib/jmsra.jar!/META-INF/ejb-jar.xml@44,18">file:/home/rachmatowicz/jms-trunk/testsuite/output/lib/jmsra.jar!/META-INF/ejb-jar.xml@44,18</A><BR>
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:164)<BR>
at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:180)<BR>
at org.jboss.deployers.plugins.deployers.helpers.ObjectModelFactoryDeployer.parse(ObjectModelFactoryDeployer.java:83) ... 55 more<BR>
Caused by: org.xml.sax.SAXException: The content of element type "session" must match "(description?,display-name?,small-icon?,large-icon?,ejb-name,home?,remote?,local-home?,local?,ejb-class,session-type,transaction-type,env-entry*,ejb-ref*,ejb-local-ref*,security-role-ref*,security-identity?,resource-ref*,resource-env-ref*)". @ jar:<A HREF="file:/home/rachmatowicz/jms-trunk/testsuite/output/lib/jmsra.jar!/META-INF/ejb-jar.xml">file:/home/rachmatowicz/jms-trunk/testsuite/output/lib/jmsra.jar!/META-INF/ejb-jar.xml</A>[44,18]<BR>
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$MetaDataErrorHandler.error(SaxJBossXBParser.java:348)<BR>
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)<BR>
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)<BR>
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)<BR>
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)<BR>
at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)<BR>
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)<BR>
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)<BR>
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)<BR>
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)<BR>
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)<BR>
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)<BR>
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)<BR>
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)<BR>
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:160)<BR>
... 57 more<BR>
<BR>
the ejb-jar.xml file:<BR>
---------------------<BR>
<?xml version="1.0" encoding="utf-8"?><BR>
<BR>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "<A HREF="http://java.sun.com/j2ee/dtds/ejb-ja\r_2_0.dtd">http://java.sun.com/j2ee/dtds/ejb-ja\r_2_0.dtd</A>"><BR>
<BR>
<ejb-jar><BR>
<description>Queue Publisher</description><BR>
<display-name>PublisherBean</display-name><BR>
<enterprise-beans><BR>
<session><BR>
<ejb-name>JMSSession</ejb-name><BR>
<home>org.jboss.test.jmsra.bean.JMSSessionHome</home><BR>
<remote>org.jboss.test.jmsra.bean.JMSSession</remote><BR>
<ejb-class>org.jboss.test.jmsra.bean.JMSSessionBean</ejb-class><BR>
<session-type>Stateless</session-type><BR>
<transaction-type>Container</transaction-type><BR>
</session><BR>
<session><BR>
<display-name>Publisher</display-name><BR>
<ejb-name>QueuePublisher</ejb-name><BR>
<home>org.jboss.test.jmsra.bean.PublisherHome</home><BR>
<remote>org.jboss.test.jmsra.bean.Publisher</remote><BR>
<ejb-class>org.jboss.test.jmsra.bean.PublisherBean</ejb-class><BR>
<session-type>Stateless</session-type><BR>
<transaction-type>Container</transaction-type><BR>
<resource-ref><BR>
<description>A Queue ConnectionFactory</description><BR>
<res-ref-name>jms/MyQueueConnection</res-ref-name><BR>
<res-type>javax.jms.QueueConnectionFactory</res-type><BR>
<res-auth>Container</res-auth><BR>
</resource-ref><BR>
<resource-ref><BR>
<description>A Queue </description><BR>
<res-ref-name>jms/QueueName</res-ref-name><BR>
<res-type>javax.jms.Queue</res-type><BR>
<res-auth>Container</res-auth><BR>
</resource-ref><BR>
<ejb-ref><BR>
<ejb-ref-name>ejb/PublisherCMP</ejb-ref-name><BR>
<ejb-ref-type>Entity</ejb-ref-type><BR>
<home>org.jboss.test.jmsra.bean.PublisherCMPHome</home><BR>
<remote>org.jboss.test.jmsra.bean.PublisherCMP</remote><BR>
<ejb-link>PublisherCMP</ejb-link><BR>
</ejb-ref><BR>
</session><BR>
<session><BR>
<display-name>TopicPublisher</display-name><BR>
<ejb-name>TopicPublisher</ejb-name><BR>
<home>org.jboss.test.jmsra.bean.PublisherHome</home><BR>
<remote>org.jboss.test.jmsra.bean.Publisher</remote><BR>
<ejb-class>org.jboss.test.jmsra.bean.TopicPublisherBean</ejb-class><BR>
<session-type>Stateless</session-type><BR>
<transaction-type>Container</transaction-type><BR>
<resource-ref><BR>
<description>A Topic ConnectionFactory</description><BR>
<res-ref-name>jms/MyTopicConnection</res-ref-name><BR>
<res-type>javax.jms.TopicConnectionFactory</res-type><BR>
<res-auth>Container</res-auth><BR>
</resource-ref><BR>
<resource-ref><BR>
<description>A Topic </description><BR>
<res-ref-name>jms/TopicName</res-ref-name><BR>
<res-type>javax.jms.Topic</res-type><BR>
<res-auth>Container</res-auth><BR>
</resource-ref><BR>
<ejb-ref><BR>
<ejb-ref-name>ejb/PublisherCMP</ejb-ref-name><BR>
<ejb-ref-type>Entity</ejb-ref-type><BR>
<home>org.jboss.test.jmsra.bean.PublisherCMPHome</home><BR>
<remote>org.jboss.test.jmsra.bean.PublisherCMP</remote><BR>
<ejb-link>PublisherCMP</ejb-link><BR>
</ejb-ref><BR>
</session><BR>
<session><BR>
<display-name>QueueRec</display-name><BR>
<ejb-name>QueueRec</ejb-name><BR>
<home>org.jboss.test.jmsra.bean.QueueRecHome</home><BR>
<remote>org.jboss.test.jmsra.bean.QueueRec</remote><BR>
<ejb-class>org.jboss.test.jmsra.bean.QueueRecBean</ejb-class><BR>
<session-type>Stateless</session-type><BR>
<transaction-type>Container</transaction-type><BR>
<resource-ref><BR>
<description>A Queue ConnectionFactory</description><BR>
<res-ref-name>jms/MyQueueConnection</res-ref-name><BR>
<res-type>javax.jms.QueueConnectionFactory</res-type><BR>
<res-auth>Container</res-auth><BR>
</resource-ref><BR>
<resource-ref><BR>
<description>A Queue </description><BR>
<res-ref-name>jms/QueueName</res-ref-name><BR>
<res-type>javax.jms.Queue</res-type><BR>
<res-auth>Container</res-auth><BR>
</resource-ref><BR>
</session><BR>
<entity><BR>
<display-name>Publisher Entity</display-name><BR>
<ejb-name>PublisherCMP</ejb-name><BR>
<home>org.jboss.test.jmsra.bean.PublisherCMPHome</home><BR>
<remote>org.jboss.test.jmsra.bean.PublisherCMP</remote><BR>
<ejb-class>org.jboss.test.jmsra.bean.PublisherCMPBean</ejb-class><BR>
<persistence-type>Container</persistence-type><BR>
<prim-key-class>java.lang.Integer</prim-key-class><BR>
<reentrant>True</reentrant><BR>
<cmp-version>1.x</cmp-version><BR>
<cmp-field><BR>
<description>Nr</description><BR>
<field-name>nr</field-name><BR>
</cmp-field><BR>
<primkey-field>nr</primkey-field><BR>
</entity><BR>
<message-driven><BR>
<ejb-name>TopicAdapter</ejb-name><BR>
<ejb-class>org.jboss.test.jmsra.bean.TopicAdapter</ejb-class><BR>
<message-selector></message-selector><BR>
<transaction-type>Container</transaction-type><BR>
<message-driven-destination><BR>
<destination-type>javax.jms.Topic</destination-type><BR>
<subscription-durability>NonDurable</subscription-durability><BR>
</message-driven-destination><BR>
<resource-ref><BR>
<description>A Queue ConnectionFactory</description><BR>
<res-ref-name>jms/MyQueueConnection</res-ref-name><BR>
<res-type>javax.jms.QueueConnectionFactory</res-type><BR>
<res-auth>Container</res-auth><BR>
</resource-ref><BR>
<resource-ref><BR>
<description>A Queue </description><BR>
<res-ref-name>jms/QueueName</res-ref-name><BR>
<res-type>javax.jms.Queue</res-type><BR>
<res-auth>Container</res-auth><BR>
</resource-ref><BR>
</message-driven><BR>
</enterprise-beans><BR>
<assembly-descriptor><BR>
<container-transaction><BR>
<method><BR>
<ejb-name>TopicAdapter</ejb-name><BR>
<method-name>*</method-name><BR>
</method><BR>
<trans-attribute>Required</trans-attribute><BR>
</container-transaction><BR>
</assembly-descriptor><BR>
</ejb-jar><BR>
<BR>
<BR>
<BR>
</FONT>
</P>
</BODY>
</HTML>