After running the ESB in debugger I found the problem here:
ejbHome = (EJBHome) PortableRemoteObject.narrow( (EJBHome) iniCtx.lookup(ejbRef.get(JNDI_NAME)), EJBHome.class);
It looks like it cannot resolve EJBHome. Am I missing something?
I'm running JBoss 4.3.2 with ESB 4.4 and JDK 5
After further debugging, I found that this is the problem:
ClassCastException: Cannot cast $Proxy85 (id=1244) to javax.ejb.EJBHome
cannot be cast into
Is this a bug?
Is this an EJB3 bean? If so, you need to explicitly declare this at present.
<property name="ejb3" value="true" />to your action declaration?
Sorry about this,
Yes, I tried adding that too but still the same error. It's still trying to cast it into the EJBHome.
This is what the configuration can look like (taken from the ejbprocessor quickstart):
<action name="EJBTestWithReturnValue" class="org.jboss.soa.esb.actions.EJBProcessor"> <property name="ejb3" value="true" /> <property name="method" value="getMessage" /> <property name="jndi-name" value="SimpleSLSB/remote" /> <property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" /> <property name="provider-url" value="localhost:1099" /> <property name="esb-out-var" value="org.jboss.soa.esb.message.defaultEntry"/> </action>
Sounds like perhaps the slsb.esb has not been updated and the action is simply ignoring the 'ejb3' property. Could that be the case perhaps?
I tried the config you just mentioned but I get the same error.
The source code in the version 4.4GA does not have anything about the ejb3 property.
Also, I don't see the ejbprocessot quickstart in the samples folder.
I'm assuming all the new code and samples are in the repository but not in the official release yet.