I tried to use the workaround suggested bij Adrian to replace the InvokerInterceptor with the 4.0.0 version.
The first problem I got was a NullpointerException when it tries to do: returnValue = localInvoker.invoke(invocation);
I've put a breakpoint on the setLocal method but it never gets called? So the localInvoker object stays null.
So I did some extra debugging and for testing purposes I made the "isLocal" method always return false so that the invoke method would always do it the remote way. Then I don't get any exceptions but I still get the same results from all servers.
Renaming the services on all servers isn't really an option. Any other tips I could try?
Warning: not sure if this applies to your version of JBoss.
I have encountered a similar problem with the InvokerInterceptor in JBoss 3.2.7 when attempting to use JMX between 2 instances of JBoss, without clustering.
After looking at the 3.2.7 source code, I was able to resolve the issue by commenting out the LocalInvoker in the conf/jboss-service.xml server config. (This blocks the setting of the static local invoker inside of the 3.2.7 InvokerIncerceptor.) This workaround can be used if you really do not wish to write or modify standard code. However, all JMX activity will use the RMIAdaptor (in my case), even if it exists locally on the same JVM, so you may take a performance hit.
[omitted discussion: various isLocal() implementations, Registry (really, a registry), etc. :) ]
Use with caution. Not sure what effects this may have on other HA components running in the same instance, so beware of this minor config change if problems occur, etc.
Yes, I also considered that option but we use mbeans very intensively so that wasn't an option. I finally solved my problem by implementing a webservice wrapper.