JBoss custom service startup dependency
kjh21 Aug 3, 2010 11:29 AMI am using JBoss service techology to coordinate the deployment and management of a variety of components of my enterprise application including runtime configuration elements and scheduled activities.
I also have a JBoss service whose responsibility it is, at startup, to create a subscription on behalf of the application by invoking a web service on a remote system. The subscription results in a flow of information (from the remote system to my application) by way of callbacks from the remote system to a web service deployed in my application.
For testing purposes, I am deploying a local version of the subscription service. At startup, I want my JBoss service responsible for initiating the subscription to invoke the locally hosted subscription service but not until after my receiving web service has started successfully (i.e. don't subscribe until ready to receive.)
I'm trying to coordinate the sequencing of these events through the dependency mechanism provided by the JBoss service technology.
The receiving web service is implemented as a javax.jws.WebService annotated class with the name attribute set to Receiver.
The effect of this is reflected in the following entry in the JBoss jmx-console:
jboss.j2ee
ear=myappalication.ear,jar=mayapplication-ejb.jar,name=Receiver,service=EJB3
This leads me to believe I can link the deployment of my subscription initiation service to the receiving service via the deployment of this MBean as follows:
<server>
<mbean code="my.package.naming.SubscriptionManager" name="MyApplication:service=SubscriptionManager">
<depends>jboss.j2ee:service=EJB3,name=Receiver</depends>
</mbean>
</server>
However, I get the following error at JBoss startup time:
======================================================================================
14:47:15,625 INFO [SubscriptionManager] Starting subscription manager service.
14:47:15,625 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
--- MBeans waiting for other MBeans ---
ObjectName: MyApplication:service=SubscriptionManager
State: CONFIGURED
I Depend On:
jboss.j2ee:service=EJB3,name=Receiver
--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.j2ee:service=EJB3,name=Receiver
State: NOTYETINSTALLED
Depends On Me:
MyApplication:service=SubscriptionManager
======================================================================================
It seems a circular dependency has been introduced although I'm not certain why or how to resolve it.
I'm using JBoss 4.0.5 with EJB 3.0 extensions.
The application is packaged as myapplication.ear which, in turn, contains a file named myapplication-ejb.jar. The jar files contains the class files for both the SubscriptionManager service and Receiver web service as well as the subscriptionmanager-service.xml resource file.
Any advice/guidance would be appreciated.