[jboss-user] [EJB 3.0] - Quartz Job unable to access deployed EJB (JBoss AS 5.01)

josey do-not-reply at jboss.com
Thu May 7 20:43:58 EDT 2009


I am upgrading from JBoss AS 4.05 to JBoss 5.01.  The code mentioned below works fine in JBoss 4.05. 

I have a quartz job that is unable to get a remote access to a deployed EJB.  I know that the EJB is deployed because I see it in the JMX console.  Additionally, I wrote a client program that uses the same code (as is used by the quartz job) to access the EJB remotely.  The client program works fine.

It seems to be a class loader issue (where quartz is running).

Here is the relevant part of the stack trace:

  | 2009-05-07 17:30:00,101 INFO  [com.squaretrade.locator.Locator] (DefaultQuartzScheduler_Worker-2) LOOKING UP SESSION: batch/QueueingEngineMessageSenderImpl/remote
  | 2009-05-07 17:30:00,101 INFO  [com.squaretrade.locator.Locator] (DefaultQuartzScheduler_Worker-2) USING PROVIDER URL FOR REMOTE  CONTEXT: jboss-batch-local-11:1100,jboss-batch-local-12:1100 2009-05-07 17:30:00,102 DEBUG [org.jboss.ejb3.proxy.objectfactory.ProxyObjectFactory] (DefaultQuartzScheduler_Worker-2) org.jboss.ejb3.proxy.objectfactory.ProxyObjectFactory servicing request for batch/QueueingEngineMessageSenderImpl/remote
  | 2009-05-07 17:30:00,140 DEBUG [org.jboss.remoting.InvokerRegistry] (DefaultQuartzScheduler_Worker-2) removed org.jboss.remoting.transport.local.LocalClientInvoker at 1ac1a45 from registry
  | 2009-05-07 17:30:00,140 DEBUG [org.jboss.ejb3.proxy.objectfactory.session.SessionProxyObjectFactory] (DefaultQuartzScheduler_Worker-2) Created Proxy of type $Proxy271 for EJB3 Business Interface: com.squaretrade.queueing.QueueingEngineMessageSenderRemote
  | 2009-05-07 17:30:00,140 INFO  [com.squaretrade.locator.Locator] (DefaultQuartzScheduler_Worker-2) CAUGHT NAMING EXCEPTION: Could not dereference object ATTEMPTING RETRY
  | 2009-05-07 17:30:00,201 ERROR [com.squaretrade.locator.Locator] (DefaultQuartzScheduler_Worker-2) CAUGHT NAMING EXCEPTION: Could not dereference object FINISHED RETRYING
  | 2009-05-07 17:30:00,201 ERROR [com.squaretrade.queueing.AbstractQueueingOperation] (DefaultQuartzScheduler_Worker-2) Exception caught in AbstractQueueingOperation.execute when executing queueing spec: com.squaretrade.queueing.spec.WarrantyOrderRequeueingOperation
  | javax.naming.NamingException: Could not dereference object [Root exception is java.lang.RuntimeException: Can not find interface declared by Proxy in our CL + BaseClassLoader at 16fde80{vfszip:/usr/local/jboss-5.0.1.GA/server/batch/deploy/quartz-ra.rar/}]
  |         at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1472)
  |         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:818)
  |         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:682)
  |         at javax.naming.InitialContext.lookup(InitialContext.java:392)
  |         at com.squaretrade.locator.Locator.getSession(Locator.java:196)
  |         at com.squaretrade.queueing.AbstractQueueingOperation.sendMessage(AbstractQueueingOperation.java:137)
  |         at com.squaretrade.queueing.AbstractQueueingOperation.execute(AbstractQueueingOperation.java:101)
  |         at com.squaretrade.semaphore.quartz.AbstractSerialQuartzJob.execute(AbstractSerialQuartzJob.java:56)
  |         at sun.reflect.GeneratedMethodAccessor436.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
  |         at org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:69)
  |         at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:73)
  |         at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:59)
  |         at sun.reflect.GeneratedMethodAccessor435.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:72)
  |         at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_11445709.invoke(InvocationContextInterceptor_z_fillMethod_11445709.java)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:88)
  |         at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_11445709.invoke(InvocationContextInterceptor_z_setup_11445709.java)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
  |         at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:194)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:80)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.mdb.MessagingContainer.localInvoke(MessagingContainer.java:262)
  |         at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery(MessageInflowLocalProxy.java:270)
  |         at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:140)
  |         at $Proxy212.execute(Unknown Source)
  |         at org.jboss.resource.adapter.quartz.inflow.QuartzJob.execute(QuartzJob.java:57)
  |         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
  |         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
  | Caused by: java.lang.RuntimeException: Can not find interface declared by Proxy in our CL + BaseClassLoader at 16fde80{vfszip:/usr/local/jboss-5.0.1.GA/server/batch/deploy/quartz-ra.rar/}
  |         at org.jboss.ejb3.proxy.objectfactory.ProxyObjectFactory.redefineProxyInTcl(ProxyObjectFactory.java:341)
  |         at org.jboss.ejb3.proxy.objectfactory.session.SessionProxyObjectFactory.createProxy(SessionProxyObjectFactory.java:134)
  |         at org.jboss.ejb3.proxy.objectfactory.session.stateless.StatelessSessionProxyObjectFactory.getProxy(StatelessSessionProxyObjectFactory.java:79)
  |         at org.jboss.ejb3.proxy.objectfactory.ProxyObjectFactory.getObjectInstance(ProxyObjectFactory.java:156)
  |         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
  |         at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1447)
  |         at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1464)
  |         ... 54 more
  | Caused by: java.lang.ClassNotFoundException: com.squaretrade.queueing.QueueingEngineMessageSenderRemote from BaseClassLoader at 16fde80{VFSClassLoaderPolicy at 178d35f{name=vfszip:/usr/local/jboss-5.0.1.GA/server/batch/deploy/quartz-ra.rar/ domain=ClassLoaderDomain at 790192{name=DefaultDomain parentPolicy=BEFORE parent=org.jboss.system.NoAnnotationURLClassLoader at 1c247a0} roots=[MemoryContextHandler at 24978055[path= context=vfsmemory://4sg251y-ua7hys-fug1iydt-1-fug1kcb3-22 real=vfsmemory://4sg251y-ua7hys-fug1iydt-1-fug1kcb3-22], DelegatingHandler at 6674454[path=quartz-ra.rar context=file:/usr/local/jboss-5.0.1.GA/server/batch/deploy/ real=file:/usr/local/jboss-5.0.1.GA/server/batch/deploy/quartz-ra.rar], DelegatingHandler at 5091970[path=quartz-ra.rar/quartz-ra.jar context=file:/usr/local/jboss-5.0.1.GA/server/batch/deploy/ real=file:/usr/local/jboss-5.0.1.GA/server/batch/deploy/quartz-ra.rar/quartz-ra.jar]]  delegates=null exported=[org.jboss.resource.adapter.quartz.inflow, META-INF] <IMPORT-ALL>NON_EMPTY}}
  |         at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:422)
  |         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  |         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
  |         at java.lang.Class.forName0(Native Method)
  |         at java.lang.Class.forName(Class.java:247)
  |         at org.jboss.ejb3.proxy.objectfactory.ProxyObjectFactory.redefineProxyInTcl(ProxyObjectFactory.java:337)
  |         ... 60 more
  | 2009-05-07 17:30:00,207 DEBUG [org.jboss.jpa.deployment.ManagedEntityManagerFactory] (DefaultQuartzScheduler_Worker-2) ************** closing entity managersession **************
  | 



View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4229587#4229587

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4229587




More information about the jboss-user mailing list