[
https://issues.jboss.org/browse/AS7-2505?page=com.atlassian.jira.plugin.s...
]
Abhi S edited comment on AS7-2505 at 12/28/11 5:55 PM:
-------------------------------------------------------
I am trying to verify this issue in 7.1 CR1 version, but I am still not able to deploy the
EAR I attached. I get the following exception:
{code}
21:13:19,515 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed
to start service
jboss.deployment.subunit."jee-app.ear"."mdb.jar".comp
onent.message-driven-bean.CREATE: org.jboss.msc.service.StartException in service
jboss.deployment.subunit."jee-app.ear"."mdb.jar".component.message-driven-bean
.CREATE: Failed to start service
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_27]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_27]
Caused by: java.lang.IllegalStateException: JBAS014521: No message listener of type
com.sample.jee.MessageListener found in resource adapter hornetq-ra
at
org.jboss.as.ejb3.component.EJBUtilities.createActivationSpecs(EJBUtilities.java:96)
at
org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponentCreateService.createComponent(MessageDrivenComponentCreateService.java:67)
at
org.jboss.as.ee.component.BasicComponentCreateService.start(BasicComponentCreateService.java:84)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
... 3 more
{code}
NOTE: If you look at my MDB source, I have a @ResourceAdapter annotation, but not sure why
is it trying to connect to hornetq-ra. My MDB code:
{code:java}
@ResourceAdapter("connector.rar")
@Depends("jboss.jca:name='connector.rar',service=RARDeployment")
public class AMessageDrivenBean implements MessageListener {
{code}
Then I added jboss-ejb3.xml in the mdb.jar (please see the attached EAR) as below based on
the example -
https://github.com/jbossas/jboss-as/blob/master/testsuite/integration/bas...
:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<jboss
xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:jee="http://java.sun.com/xml/ns/javaee"
xmlns:mdb="urn:resource-adapter-binding"
xmlns:security="urn:security">
<jee:assembly-descriptor>
<mdb:resource-adapter-binding>
<!--<jee:ejb-name>ConfiguredResourceAdapterNameMDB</jee:ejb-name>-->
<mdb:resource-adapter-name>connector.rar</mdb:resource-adapter-name>
</mdb:resource-adapter-binding>
</jee:assembly-descriptor>
</jboss>
{code}
BUT now I get another exception:
{code}
21:26:09,214 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-10) MSC00001: Failed
to start service jboss.deployment.subunit."jee-app.ear"."mdb.jar".PAR
SE: org.jboss.msc.service.StartException in service
jboss.deployment.subunit."jee-app.ear"."mdb.jar".PARSE: Failed to
process phase PARSE of subdeployment "mdb.
jar" of deployment "jee-app.ear"
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121)
[jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_27]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_27]
Caused by: java.lang.ClassCastException:
org.jboss.metadata.ejb.spec.MessageDrivenBean31MetaData cannot be cast to
org.jboss.metadata.ejb.jboss.ejb3.JBossGeneri
cBeanMetaData
at
org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData.merge(MessageDrivenBeanMetaData.java:353)
at
org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData.createMerged(MessageDrivenBeanMetaData.java:85)
at
org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData.createMerged(MessageDrivenBeanMetaData.java:36)
at
org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData.merge(EnterpriseBeansMetaData.java:73)
at
org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData.createMerged(EnterpriseBeansMetaData.java:52)
at org.jboss.metadata.ejb.spec.EjbJarMetaData.merge(EjbJarMetaData.java:177)
at
org.jboss.metadata.ejb.spec.EjbJarMetaData.createMerged(EjbJarMetaData.java:668)
at
org.jboss.as.ejb3.deployment.processors.EjbJarParsingDeploymentUnitProcessor.deploy(EjbJarParsingDeploymentUnitProcessor.java:124)
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
[jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
... 5 more
{code}
What am I missing?
was (Author: abhis):
I am trying to verify this issue, but I am still not able to deploy the EAR I
attached. I get the following exception:
{code}
21:13:19,515 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed
to start service
jboss.deployment.subunit."jee-app.ear"."mdb.jar".comp
onent.message-driven-bean.CREATE: org.jboss.msc.service.StartException in service
jboss.deployment.subunit."jee-app.ear"."mdb.jar".component.message-driven-bean
.CREATE: Failed to start service
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_27]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_27]
Caused by: java.lang.IllegalStateException: JBAS014521: No message listener of type
com.sample.jee.MessageListener found in resource adapter hornetq-ra
at
org.jboss.as.ejb3.component.EJBUtilities.createActivationSpecs(EJBUtilities.java:96)
at
org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponentCreateService.createComponent(MessageDrivenComponentCreateService.java:67)
at
org.jboss.as.ee.component.BasicComponentCreateService.start(BasicComponentCreateService.java:84)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
... 3 more
{code}
NOTE: If you look at my MDB source, I have a @ResourceAdapter annotation, but not sure why
is it trying to connect to hornetq-ra. My MDB code:
{code:java}
@ResourceAdapter("connector.rar")
@Depends("jboss.jca:name='connector.rar',service=RARDeployment")
public class AMessageDrivenBean implements MessageListener {
{code}
Then I added jboss-ejb3.xml in the mdb.jar (please see the attached EAR) as below based on
the example -
https://github.com/jbossas/jboss-as/blob/master/testsuite/integration/bas...
:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<jboss
xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:jee="http://java.sun.com/xml/ns/javaee"
xmlns:mdb="urn:resource-adapter-binding"
xmlns:security="urn:security">
<jee:assembly-descriptor>
<mdb:resource-adapter-binding>
<!--<jee:ejb-name>ConfiguredResourceAdapterNameMDB</jee:ejb-name>-->
<mdb:resource-adapter-name>connector.rar</mdb:resource-adapter-name>
</mdb:resource-adapter-binding>
</jee:assembly-descriptor>
</jboss>
{code}
BUT now I get another exception:
{code}
21:26:09,214 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-10) MSC00001: Failed
to start service jboss.deployment.subunit."jee-app.ear"."mdb.jar".PAR
SE: org.jboss.msc.service.StartException in service
jboss.deployment.subunit."jee-app.ear"."mdb.jar".PARSE: Failed to
process phase PARSE of subdeployment "mdb.
jar" of deployment "jee-app.ear"
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121)
[jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_27]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_27]
Caused by: java.lang.ClassCastException:
org.jboss.metadata.ejb.spec.MessageDrivenBean31MetaData cannot be cast to
org.jboss.metadata.ejb.jboss.ejb3.JBossGeneri
cBeanMetaData
at
org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData.merge(MessageDrivenBeanMetaData.java:353)
at
org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData.createMerged(MessageDrivenBeanMetaData.java:85)
at
org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData.createMerged(MessageDrivenBeanMetaData.java:36)
at
org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData.merge(EnterpriseBeansMetaData.java:73)
at
org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData.createMerged(EnterpriseBeansMetaData.java:52)
at org.jboss.metadata.ejb.spec.EjbJarMetaData.merge(EjbJarMetaData.java:177)
at
org.jboss.metadata.ejb.spec.EjbJarMetaData.createMerged(EjbJarMetaData.java:668)
at
org.jboss.as.ejb3.deployment.processors.EjbJarParsingDeploymentUnitProcessor.deploy(EjbJarParsingDeploymentUnitProcessor.java:124)
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
[jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
... 5 more
{code}
What am I missing?
Deployment order for MDBs and RAs is not working for a packaged EAR
-------------------------------------------------------------------
Key: AS7-2505
URL:
https://issues.jboss.org/browse/AS7-2505
Project: Application Server 7
Issue Type: Bug
Components: EJB, JCA, JSR88
Affects Versions: 7.0.2.Final, 7.1.0.Alpha1
Environment: Windows 7 64-bit
Reporter: Abhi S
Assignee: jaikiran pai
Priority: Critical
Labels: deployment, ear, mdb, ra
Fix For: 7.1.0.CR1
Attachments: jee-app.ear, jee-app.ear
If an application is packaged with MDBs and RAs (resource adapters) such that the order
of deployment of these modules needs to be deterministic, the application fails to load.
In other words, there is no way to define the order in which MDBs and RAs must be loaded
in an application. This is a strict requirement by JEE 6, and without this support, JBoss
7 cannot be fully JEE 6 compliant.
Theoretically, following are 3 different ways to accomplish the above objective:
# Set <initialize-in-order> to true; see
http://java.sun.com/xml/ns/javaee/application_6.xsd. This seems to be fixed in AS7-325,
but I tested it using a sample application, and this definitely does not work for MDBs and
RAs.
# Add jboss-ejb3.xml in the MDB jar's MATA-INF to define the MDB's dependency on
an RA. Adding this configuration MUST ensure that the application loader loads the RA
before trying to load the MDB. Development of this feature is still in progress
(AS7-1211).
# Add org.jboss.ejb3.annotation.Depends annotation on the MDB implementation, to do the
same as #2.
None of the above work in the nightly build of AS7.1.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira