problem with ESB 4.6 EJBProcessor action
earniedyke Aug 12, 2009 10:22 AMGreetings all,
In my current config I have a JBoss AS 5.0.1 server running onto which my EJB3 is deployed with both a local and remote interface. I have a JBoss ESB 4.6 server running from which I have and EJBProcessor action which I am trying to use to execute a method on the remote EJB3. When the action executes I get a MethodNotFound exception. Some debugging has revealed that the class the EJBProcessor is trying to make the method call on is an instance of javax.naming.Reference.
Below I have included a copy of the action definition, the jndiview from the AS and the stack trace of the exception.
Anyone run in to this?
Earnie!
<action class="org.jboss.soa.esb.actions.EJBProcessor" name="EJBAFCore"> <property name="ejb3" value="true" /> <property name="method" value="assignAsset" /> <property name="jndi-name" value="AFCore/remote" /> <property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" /> <property name="provider-url" value="localhost:11099" /> <property name="ejb-params"> <arg0 type="org.ebs.esbdemo.entity.Target">org.jboss.soa.esb.message.defaultEntry</arg0> <arg1 type="org.ebs.esbdemo.entity.TargetAssignment">targetAssignment</arg1> </property> </action>
+- AFCore (class: org.jnp.interfaces.NamingContext) | +- local (class: Proxy for: org.ebs.esbdemo.bi.AFCore) | +- remote (class: Proxy for: org.ebs.esbdemo.bi.AFCoreRemote)
2009-08-12 09:53:49,046 DEBUG [org.jboss.soa.esb.listeners.message.ActionProcessingPipeline] Unexpected exception caught while processing the action pipeline: header: [ To: JMSEpr [ PortReference < <wsa:Address jms:jnp://localhost:11099#queue/afRequestEsb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://localhost:11099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:destination-name : queue/afRequestEsb/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] MessageID: 62cbf912-1719-4f79-aaa2-5be72eac6de4 RelatesTo: jms:correlationID#62cbf912-1719-4f79-aaa2-5be72eac6de4 ] org.jboss.soa.esb.actions.ActionProcessingException: Got an error while processing EJB method [assignAsset] at org.jboss.soa.esb.actions.EJBProcessor.process(EJBProcessor.java:181) 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.soa.esb.listeners.message.ActionProcessorMethodInfo.processMethods(ActionProcessorMethodInfo.java:102) at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcessor.process(OverriddenActionLifecycleProcessor.java:74) at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:634) at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:586) at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:420) at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:545) 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) Caused by: java.lang.NoSuchMethodException: javax.naming.Reference.assignAsset(org.ebs.esbdemo.entity.Target, org.ebs.esbdemo.entity.TargetAssignment) at java.lang.Class.getMethod(Class.java:1605) at org.jboss.soa.esb.actions.EJBProcessor.invoke(EJBProcessor.java:335) at org.jboss.soa.esb.actions.EJBProcessor.process(EJBProcessor.java:160) ... 13 more