I'm hoping someone can shed some light on my issue. I'm pretty certain its a classloader issue, but I have no idea how to go about figuring it out.
I have a war file. This war file deploys correctly, does what its supposed to. Now I have set up jmx so that I can connect with jconsole. I can see the beans and methods which I have exposed. All good so far.
Now, I want to start and stop this war using jmx. Stopping the war is fine. All shuts down as its supposed to. The problems arise when I try to restart it.
Its gets about 3/4 of the way through startup. It then gets to a piece where I'm trying to create a jms connection. It fails here with ClassNotFoundException. Now there is no debate that the required jar is present in the war, as if it wasn't, it would NEVER have deployed correctly in the first place. (And even if it had deployed, there is NO way it would have allowed me to run my tests against it).
Originally I had my war set up to run in isolation (as I was using some newer versions of things). I have removed isolation (and the newer versions), as I wondered if that was why the jmx classloader couldn't see the jar. But that has made no difference. (Everything runs correctly, until I try to restart).
So I'm completely at a lose as to where to go from here. So any pointers would be great.
Solved. The issue isn't with jboss. Its with spring. I'm using spring to expose my beans. And for some reason the classloader isn't exposed to the jmx. The solutions was to add:
<property name="exposeManagedResourceClassLoader" value=true"> to the MBeanExporter. The full explaination is here:
Hope this helps someone else