I want to terminate a @MessageDriven
AMQ consumer from an EAR project’s code programmatically. The code is in a "main.ear"."admin.war"
, while the consumer class is in another.war
. Both main.ear
and another.war
are deployed in RedHat JBoss EAP 6.4 but separately.
In the pom.xml
of module admin
, I introduce the another
module as dependency:
<dependency>
<groupId>com.example</groupId>
<artifactId>another</artifactId>
<classifier>classes</classifier> <!-- so to use `another-0.0.1-SNAPSHOT-classes.jar` -->
<version>${project.version}</version>
<scope>compile</scope> <!-- if put "provided", classes will not be packaged into `admin.war` and NoClassDefException -->
</dependency>
The compilation works, but when launching, this error happens:
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) - MSC000001: Failed to start service
jboss.deployment.subunit."main.ear"."admin.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."main.ear"."admin.war".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of subdeployment "admin.war" of deployment "main.ear"
2024-06-05T11:49:58.929345566Z at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:184) [jboss-as-server-7.5.23.Final-redhat-00002.jar:7.5.23.Final-redhat-00002]
2024-06-05T11:49:58.929351032Z at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2064) [jboss-msc-1.1.7.SP1-redhat-1.jar:1.1.7.SP1-redhat-1]
2024-06-05T11:49:58.929354483Z at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1987) [jboss-msc-1.1.7.SP1-redhat-1.jar:1.1.7.SP1-redhat-1]
2024-06-05T11:49:58.929357898Z at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_372]
2024-06-05T11:49:58.929373706Z at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_372]
2024-06-05T11:49:58.929377514Z at java.lang.Thread.run(Thread.java:750) [rt.jar:1.8.0_372]
2024-06-05T11:49:58.929381166Z Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011232: Only one JAX-RS Application Class allowed. com.example.another.RestApplication com.example.admin.AdminApplication
2024-06-05T11:49:58.929384994Z at org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.scan(JaxrsScanningProcessor.java:206)
2024-06-05T11:49:58.929402844Z at org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.deploy(JaxrsScanningProcessor.java:104)
2024-06-05T11:49:58.929406465Z at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:177) [jboss-as-server-7.5.23.Final-redhat-00002.jar:7.5.23.Final-redhat-00002]
2024-06-05T11:49:58.929410104Z ... 5 more
2024-06-05T11:49:58.929413220Z
How can I:
- avoid putting class
RestApplication
into theanother-0.0.1-SNAPSHOT-classes.jar
while listing it as compiled scope dependency foradmin.war
- meanwhile, make sure the original
RestApplication
endpoint deployed inanother.war
works normally?