[jboss-jira] [JBoss JIRA] Commented: (EJBTHREE-983) @EJB injection fails, RuntimeException, IllegalArgumentException

William DeCoste (JIRA) jira-events at lists.jboss.org
Tue Jun 19 14:32:39 EDT 2007


    [ http://jira.jboss.com/jira/browse/EJBTHREE-983?page=comments#action_12366070 ] 
            
William DeCoste commented on EJBTHREE-983:
------------------------------------------

Are the two deployments using the same classloader or have you configured a scoped classloading repository? Looks like the problem might be that the proxy being injected was instantiated using a different classloader than the classloader doing the injecting. If this is the case, you can workaround this issue by setting the CallByValue attribute of the jboss:service=Naming service to true (configured in conf/jboss-service.xml). 

> @EJB injection fails, RuntimeException, IllegalArgumentException
> ----------------------------------------------------------------
>
>                 Key: EJBTHREE-983
>                 URL: http://jira.jboss.com/jira/browse/EJBTHREE-983
>             Project: EJB 3.0
>          Issue Type: Bug
>          Components: EJB3 Extensions
>    Affects Versions: EJB 3.0 RC9 - Patch 1, AS 4.2.0 GA
>         Environment: Debian Linux, Sun Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
>            Reporter: dpocock
>
> Similar to bug EJBTHREE-862.  However, setting `Isolated' to false in $JBOSS_HOME/server/XXX/deploy/ear-deployer.xml does not resolve the issue for me.
> Here is the scenario:
> There are two applications, app1.ear and app2.ear.
> app1.ear contains a stateless session bean, App1Bean, with local and remote interface
> app2.ear contains a stateless session bean, App2Bean, which has a field defined like so:
> @EJB(mappedName="app1/App1Bean/local")  // I've tried local and remote
> com.app1.ejb.session.App1 app1;
> app1.ear and app2.ear are loaded successfully by the application server.
> When App2Bean is activated, JBoss tries to perform the injections.  At this point, the RuntimeException (see stack below) occurs.
> App2Bean can successfully obtain a reference to app1 bean using the traditional JNDI lookup methods.  This is a workaround.
> When inspecting the stack, notice the presence of IllegalArgumentException, even though the interface matches.
> 16:22:12,155 ERROR [STDERR] java.lang.RuntimeException: Non matching type for inject of field: App1Bean app1 for type: $Proxy79 of jndiName env/App2Bean/app2
> intfs: , App1, org.jboss.ejb3.JBossProxy, javax.ejb.EJBObject
> 16:22:12,155 ERROR [STDERR] at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:135)
> 16:22:12,155 ERROR [STDERR] at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:104)
> 16:22:12,155 ERROR [STDERR] at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:61)
> 16:22:12,155 ERROR [STDERR] at org.jboss.ejb3.AbstractPool.create(AbstractPool.java:92)
> 16:22:12,155 ERROR [STDERR] at org.jboss.ejb3.ThreadlocalPool.get(ThreadlocalPool.java:48)
> 16:22:12,165 ERROR [STDERR] at org.jboss.ejb3.cache.simple.SimpleStatefulCache.create(SimpleStatefulCache.java:209)
> 16:22:12,165 ERROR [STDERR] at org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:303)
> 16:22:12,165 ERROR [STDERR] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
> 16:22:12,165 ERROR [STDERR] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
> 16:22:12,175 ERROR [STDERR] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
> 16:22:12,175 ERROR [STDERR] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
> 16:22:12,175 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
> 16:22:12,175 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:412)
> 16:22:12,175 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
> 16:22:12,185 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException
> 16:22:12,185 ERROR [STDERR] at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
> 16:22:12,185 ERROR [STDERR] at java.lang.reflect.Field.set(Field.java:656)
> 16:22:12,185 ERROR [STDERR] at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:119)
> 16:22:12,185 ERROR [STDERR] ... 13 more 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list