Okay, I think I'm close now. I couldn't find any MBeans for my ear, so I created one.
package bob.bobtest;
public interface BobTestMBeanInterface {
void create() throws Exception;
void start() throws Exception;
void stop();
void destroy();
}
package bob.bobtest;
import org.jboss.ejb3.annotation.Management;
import org.jboss.ejb3.annotation.Service;
@Service(objectName = "bob.bobtest:serviceName=BobTest")
@Management(BobTestMBeanInterface.class)
public class BobTestMBean implements BobTestMBeanInterface {
public void create() throws Exception {
System.out.println("create called");
}
public void destroy() {
System.out.println("destroy called");
}
public void start() throws Exception {
System.out.println("start called");
}
public void stop() {
System.out.println("stop called");
}
}
This shows up in JNDIView and I was able to add a dependency to my war. When I redeploy the ear that contains that MBean, it does trigger my war to undeploy, but it generates a NullPointerException when it attempts to redeploy the war. Here is the console output from the whole process starting with the redeploy of the ear:
15:30:43,033 INFO [ClientENCInjectionContainer] STOPPED CLIENT ENC CONTAINER: jtds-1.2
15:30:43,037 INFO [ClientENCInjectionContainer] STOPPED CLIENT ENC CONTAINER: jconn3
15:30:43,039 INFO [ClientENCInjectionContainer] STOPPED CLIENT ENC CONTAINER: jconn2
15:30:43,042 INFO [TomcatDeployment] undeploy, ctxPath=/bobTest
15:30:43,046 INFO [STDOUT] stop called
15:30:43,048 INFO [EJBContainer] STOPPED EJB: bob.bobtest.BobTestMBean ejbName: BobTestMBean
15:30:43,048 INFO [STDOUT] destroy called
15:30:46,495 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@495782416{vfsfile:/app/jboss-5.1.0.GA/server/local/deploy/valpak/local.ear/javaapps/ja_bobTest.jar/}
15:30:46,495 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@495782416{vfsfile:/app/jboss-5.1.0.GA/server/local/deploy/valpak/local.ear/javaapps/ja_bobTest.jar/}
15:30:46,503 INFO [JBossASKernel] Created KernelDeployment for: jconn2.jar
15:30:46,503 INFO [JBossASKernel] installing bean: jboss.j2ee:ear=local.ear,jar=jconn2.jar,name=jconn2,service=EJB3
15:30:46,503 INFO [JBossASKernel] with dependencies:
15:30:46,504 INFO [JBossASKernel] and demands:
15:30:46,504 INFO [JBossASKernel] and supplies:
15:30:46,504 INFO [JBossASKernel] Added bean(jboss.j2ee:ear=local.ear,jar=jconn2.jar,name=jconn2,service=EJB3) to KernelDeployment of: jconn2.jar
15:30:46,506 INFO [JBossASKernel] Created KernelDeployment for: jconn3.jar
15:30:46,506 INFO [JBossASKernel] installing bean: jboss.j2ee:ear=local.ear,jar=jconn3.jar,name=jconn3,service=EJB3
15:30:46,506 INFO [JBossASKernel] with dependencies:
15:30:46,506 INFO [JBossASKernel] and demands:
15:30:46,506 INFO [JBossASKernel] and supplies:
15:30:46,506 INFO [JBossASKernel] Added bean(jboss.j2ee:ear=local.ear,jar=jconn3.jar,name=jconn3,service=EJB3) to KernelDeployment of: jconn3.jar
15:30:46,507 INFO [JBossASKernel] Created KernelDeployment for: jtds-1.2.jar
15:30:46,507 INFO [JBossASKernel] installing bean: jboss.j2ee:ear=local.ear,jar=jtds-1.2.jar,name=jtds-1.2,service=EJB3
15:30:46,507 INFO [JBossASKernel] with dependencies:
15:30:46,508 INFO [JBossASKernel] and demands:
15:30:46,508 INFO [JBossASKernel] and supplies:
15:30:46,508 INFO [JBossASKernel] Added bean(jboss.j2ee:ear=local.ear,jar=jtds-1.2.jar,name=jtds-1.2,service=EJB3) to KernelDeployment of: jtds-1.2.jar
15:30:47,488 INFO [JBossASKernel] Created KernelDeployment for: ja_bobTest.jar
15:30:47,488 INFO [JBossASKernel] installing bean: jboss.j2ee:ear=local.ear,jar=ja_bobTest.jar,name=BobTestMBean,service=EJB3
15:30:47,488 INFO [JBossASKernel] with dependencies:
15:30:47,488 INFO [JBossASKernel] and demands:
15:30:47,488 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
15:30:47,489 INFO [JBossASKernel] and supplies:
15:30:47,489 INFO [JBossASKernel] jndi:local/BobTestMBean/remote
15:30:47,489 INFO [JBossASKernel] Class:bob.bobtest.BobTestMBeanInterface
15:30:47,489 INFO [JBossASKernel] Added bean(jboss.j2ee:ear=local.ear,jar=ja_bobTest.jar,name=BobTestMBean,service=EJB3) to KernelDeployment of: ja_bobTest.jar
15:30:48,036 INFO [JBossASKernel] installing bean: bob.bobtest:serviceName=BobTest
15:30:48,036 INFO [JBossASKernel] with dependencies:
15:30:48,036 INFO [JBossASKernel] and demands:
15:30:48,036 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
15:30:48,036 INFO [JBossASKernel] jboss.j2ee:ear=local.ear,jar=ja_bobTest.jar,name=BobTestMBean,service=EJB3
15:30:48,036 INFO [JBossASKernel] and supplies:
15:30:48,036 INFO [JBossASKernel] jndi:local/BobTestMBean/remote
15:30:48,036 INFO [JBossASKernel] Class:bob.bobtest.BobTestMBeanInterface
15:30:48,037 INFO [JBossASKernel] Installing bean(bob.bobtest:serviceName=BobTest) into kernel
15:30:48,039 INFO [STDOUT] create called
15:30:48,039 INFO [EJBContainer] STARTED EJB: bob.bobtest.BobTestMBean ejbName: BobTestMBean
15:30:48,040 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
15:30:48,044 INFO [STDOUT] start called
15:30:48,050 ERROR [AbstractKernelController] Error installing to Start: name=jboss.web.deployment:war=/bobTest state=Create mode=Manual requiredState=Installed
java.lang.NullPointerException
at org.jboss.web.deployers.WebModule.startModule(WebModule.java:117)
at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
at $Proxy38.start(Unknown Source)
at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540)
at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:121)
at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:51)
at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
15:30:48,056 INFO [ClientENCInjectionContainer] STARTED CLIENT ENC CONTAINER: jconn2
15:30:48,060 INFO [ClientENCInjectionContainer] STARTED CLIENT ENC CONTAINER: jconn3
15:30:48,065 INFO [ClientENCInjectionContainer] STARTED CLIENT ENC CONTAINER: jtds-1.2