I thought I'd take the opportunity to send some love David B's way... I think it's great the way he's been addressing these user questions and documenting in the Wiki.

I hope we can get this stuff organized so that users can find this information in a reasonable manner...

--kevan

On Sep 13, 2007, at 3:54 PM, David Blevins wrote:

Hi Tomasz,

I created a doc for you that describes the missing parts.

  http://cwiki.apache.org/OPENEJB/ejb-refs.html

Keep what you have with the openejb-jar and add the parts described in this to your ejb-jar.xml.

Unfortunately, while looking into this I discovered that our code for overriding an @EJB annotation with an <ejb-ref> in the xml is not implemented, thus if you have @EJB and the corresponding <ejb- ref> as described in the first section of the document, you'll end up with two refs and not one as you should.

We'll get this fixed asap, but until then follow the technique described in the second part of the doc and in the next version of Geronimo you'll be able to delete some of that xml and readd the @EJB annotation.

-David



On Sep 13, 2007, at 6:58 AM, Tomasz Mazan wrote:


Hello

I got deployed module A (JAR) and application B (EAR).

A) Contains stateless bean

@Stateless(name = "JmsDispatcherGate")
public class JmsDispatcherGateImpl implements DispatcherGateLocal,
DispatcherGateRemote {

and - of course - necessary interfaces.

ejb-jar.xml does'nt contain interesting content,
openejb-jar.xml contains module description
    <sys:moduleId>
      <sys:groupId>myejbmodule</sys:groupId>
      <sys:artifactId>Dispatcher</sys:artifactId>
      <sys:version>1.0</sys:version>
      <sys:type>jar</sys:type>
    </sys:moduleId>

B) Application contains two ejb-jars with beans

geronimo-application.xml contains
        <dependencies>
                <dependency>
                        <groupId>myejbmodule</groupId>
                        <artifactId>Dispatcher</artifactId>
                        <version>1.0</version>
                        <type>jar</type>
                </dependency>
        </dependencies>

and one of B-module has openejb-jar.xml with similar dependencie's
definition.
Bean in B-module references to bean from A (EJB) using code below:

        @EJB(name = "JmsDispatcherGate")
        private DispatcherGateLocal dispatcherGate;

Problem occurs on deploying B-application (EAR) while A (EJB) is correctly deployed and Geronimo Console JNDI Viewer show JmsDispatcherGate bean. I
tried to use Remote interface - with no special difference.

Exception stacktrace:
15:31:18,812 FATAL [startup] Cannot find bean "JmsDispatcherGate" referenced
by bean "CoreManagerLocal".
15:31:18,812 ERROR [Deployer] Deployment failed due to
org.apache.geronimo.common.DeploymentException:
org.apache.openejb.OpenEJBException: Cannot find bean "JmsDispatcherGate"
referenced by bean "CoreManagerLocal".
        at
org.apache.geronimo.openejb.deployment.EjbModuleBuilder.getEjbJarInfo (EjbModuleBuilder.java:530)
        at
org.apache.geronimo.openejb.deployment.EjbModuleBuilder.initContext (EjbModuleBuilder.java:437)
        at
org.apache.geronimo.openejb.deployment.EjbModuleBuilder$ $FastClassByCGLIB$$cd80af20.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke (FastMethodInvoker.java:38)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke (GBeanOperation.java:124)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:830) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke (RawInvoker.java:57)
        at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke (RawOperationInvoker.java:35)
        at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept (ProxyMethodInterceptor.java:96)
        at
org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$ $dc485bed.initContext(<generated>)
        at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfigurati on(EARConfigBuilder.java:576)
        at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder$ $FastClassByCGLIB$$38e56ec6.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke (FastMethodInvoker.java:38)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke (GBeanOperation.java:124)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:830) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke (RawInvoker.java:57)
        at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke (RawOperationInvoker.java:35)
        at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept (ProxyMethodInterceptor.java:96)
        at
org.apache.geronimo.j2ee.deployment.CorbaGBeanNameSource$ $EnhancerByCGLIB$$1375d602.buildConfiguration(<generated>)
        at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:304)
        at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:126)
        at
org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$ $734a235d.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke (FastMethodInvoker.java:38)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke (GBeanOperation.java:124)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:865)
        at
org.apache.geronimo.kernel.basic.BasicKernel.invoke (BasicKernel.java:239) at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java: 342)
        at
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$ $1cccefc9.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke (FastMethodInvoker.java:38)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke (GBeanOperation.java:124)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:865)
        at
org.apache.geronimo.kernel.basic.BasicKernel.invoke (BasicKernel.java:239)
        at
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke (MBeanGBeanBridge.java:168)
        at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke (DynamicMetaDataImpl.java:213) at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java: 220)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke (DefaultMBeanServerInterceptor.java:815) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke (JmxMBeanServer.java:784)
        at
javax.management.remote.rmi.RMIConnectionImpl.doOperation (RMIConnectionImpl.java:1408)
        at
javax.management.remote.rmi.RMIConnectionImpl.access$100 (RMIConnectionImpl.java:81)
        at
javax.management.remote.rmi.RMIConnectionImpl $PrivilegedOperation.run(RMIConnectionImpl.java:1245)
        at java.security.AccessController.doPrivileged(Native Method)
        at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation (RMIConnectionImpl.java:1348)
        at
javax.management.remote.rmi.RMIConnectionImpl.invoke (RMIConnectionImpl.java:782)
        at sun.reflect.GeneratedMethodAccessor217.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java: 294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages (TCPTransport.java:466)
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run (TCPTransport.java:707)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.openejb.OpenEJBException: Cannot find bean
"JmsDispatcherGate" referenced by bean "CoreManagerLocal".
        at
org.apache.openejb.config.JndiEncInfoBuilder.buildEjbLocalRefInfos (JndiEncInfoBuilder.java:371)
        at
org.apache.openejb.config.JndiEncInfoBuilder.build (JndiEncInfoBuilder.java:245)
        at
org.apache.openejb.config.JndiEncInfoBuilder.initJndiReferences (JndiEncInfoBuilder.java:166)
        at
org.apache.openejb.config.JndiEncInfoBuilder.initJndiReferences (JndiEncInfoBuilder.java:102)
        at
org.apache.openejb.config.ConfigurationFactory.configureApplication (ConfigurationFactory.java:340)
        at
org.apache.geronimo.openejb.OpenEjbSystemGBean.configureApplication (OpenEjbSystemGBean.java:303)
        at
org.apache.geronimo.openejb.OpenEjbSystemGBean$$FastClassByCGLIB$ $5005cdd0.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke (FastMethodInvoker.java:38)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke (GBeanOperation.java:124)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:830) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke (RawInvoker.java:57)
        at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke (RawOperationInvoker.java:35)
        at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept (ProxyMethodInterceptor.java:96)
        at
org.apache.geronimo.openejb.OpenEjbSystem$$EnhancerByCGLIB$ $e2a54c40.configureApplication(<generated>)
        at
org.apache.geronimo.openejb.deployment.EjbModuleBuilder.getEjbJarInfo (EjbModuleBuilder.java:515)
        ... 56 more

Any idea what goes wrong and how to make it working?

tia
Beniamin
--
View this message in context: http://www.nabble.com/Problem-with- referencing-to-beans-from-other-ejb-jars-tf4435740s134.html#a12654889 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.




Reply via email to