On Dec 11, 2006, at 12:11 PM, Aaron Mulder wrote:

Do you get an error if you don't list any EJBs at all?  It looks like
that technically violates the schema, but it's worth a try.
Otherwise, can you post your dummy bean implementation class?  Perhaps
it's missing one of the required methods like ejbCreate?

In any case, it would be extremely sensible for us to add an element
to the EAR deployment plan to let you list JARs within the EAR to add
to the EAR class path.  David J, what do you think?

Sensible??? whats that mean ????? :-)

I like this idea a lot, especially if I don't have to implement it :-)

thanks
david jencks


Thanks,
     Aaron

On 12/11/06, Spotts, Joel (ISS Atlanta) <[EMAIL PROTECTED]> wrote:
Thanks for the suggestion. I am trying that tact, but am now running into another issue. When I try and create a dummy ejb jar, I get an error when the ejb module is loaded. I tried googling the exception as well searching the archives for the exception, but with no success. The exception is as
follows:

14:27:43,483 ERROR [GBeanInstanceState] Error while starting; GBean is now
in the FAILED state:
abstractName="iss/SampleEar/1.0/car? EJBModule=DummyEJB.jar,J2EEApplication=iss/SampleEar/1.0/ car,j2eeType=StatelessSessionBean,name=Dummy"
java.lang.IllegalArgumentException: Class class
org.openejb.proxy.SessionEJBLocalHome$$EnhancerByCGLIB$$7bde9985
does not use a MethodInterceptor
 at
net.sf.cglib.proxy.MethodProxy.find(MethodProxy.java:129)
 at
org.openejb.dispatch.MethodHelper.getSuperIndex(MethodHelper.java:82)
 at
org.openejb.proxy.EJBProxyHelper.buildProxyToShadowIndex (EJBProxyHelper.java:122)
 at
org.openejb.proxy.EJBProxyHelper.getOperationMap (EJBProxyHelper.java:67)
 at
org.openejb.proxy.EJBProxyFactory$InterfaceMaps.createOperationsMap (EJBProxyFactory.java:397)
 at
org.openejb.proxy.EJBProxyFactory$InterfaceMaps.<init> (EJBProxyFactory.java:368)
 at
org.openejb.proxy.EJBProxyFactory.<init>(EJBProxyFactory.java:88)
at org.openejb.GenericEJBContainer.<init> (GenericEJBContainer.java:172)
 at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
 at
sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:39)
 at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:27)
 at
java.lang.reflect.Constructor.newInstance(Constructor.java:494)
 at
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance (GBeanInstance.java:933)
 at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart (GBeanInstanceState.java:267)
 at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start (GBeanInstanceState.java:102)
 at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive (GBeanInstanceState.java:124)
 at
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive (GBeanInstance.java:540)
 at
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean (BasicKernel.java:379)
 at
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfiguratio nGBeans(ConfigurationUtil.java:374)
 at
org.apache.geronimo.kernel.config.KernelConfigurationManager.start (KernelConfigurationManager.java:187)
 at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startCon figuration(SimpleConfigurationManager.java:527)
 at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startCon figuration(SimpleConfigurationManager.java:508)
 at
org.apache.geronimo.kernel.config.SimpleConfigurationManager$ $FastClassByCGLIB$$ce77a924.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:122)
 at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:817)
 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.kernel.config.EditableConfigurationManager$ $EnhancerByCGLIB$$4ac69885.startConfiguration(<generated>)
 at
org.apache.geronimo.deployment.plugin.local.StartCommand.run (StartCommand.java:67)
 at java.lang.Thread.run(Thread.java:595)

Here is my ejb-jar.xml

<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd";
version="2.1">

   <enterprise-beans>

      <!-- Session Beans -->
      <session >
         <description><![CDATA[]]></description>
         <ejb-name>Dummy</ejb-name>

<local-home>net.iss.geronimo.ejb.DummyLocalHome</local-home>
         <local>net.iss.geronimo.ejb.DummyLocal</local>
         <ejb-class>net.iss.geronimo.ejb.DummyBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Bean</transaction-type>
      </session>
   </enterprise-beans>

   <assembly-descriptor >
   </assembly-descriptor>

</ejb-jar>



and my openejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar
xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1";>
  <enterprise-beans>
  <session>
   <ejb-name>Dummy</ejb-name>
  </session>

 </enterprise-beans>

</openejb-jar>

The actual ejb beans are completely devoid of any content (i.e. all method implementations are empty, and LocalHome and Local interfaces are declare no
methods). I tried to create as minimal an ejb as possible.

Any ideas?

Thanks,

Yoel Spotts


 ________________________________
 From: David Jencks [mailto:[EMAIL PROTECTED]
Sent: Friday, December 08, 2006 7:00 PM
To: [email protected]
Subject: Re: Third party jars inside ear files


The only think I know of that you can do is to include a dummy ejb jar file with no ejbs in it and put your libs in it's manifest classpath. It will need a skeleton ejb-jar.xml descriptor so it can get deployed correctly.


You are correct that the dependency elements only refer jars outside the ear in the geronimo repository. The other thing you could do is to put the jars in the geronimo repo and use dependency elements. This is fairly easy if
you use maven... .but still not as easy as it should be.


hope this helps
david jencks



On Dec 8, 2006, at 12:10 PM, Spotts, Joel ((ISS Atlanta)) wrote:



I have a number of third party jars I want to include inside an ear. I would like all my web applications to have access those jars. I realize that I can list those jars inside the manifest files of the wars (using the Class path directive), but that would mean that each war would load those jars in different class loaders. Is there a way I can designate that those jars I include in the ear should be available to the wars loaded by the class loader of the ear (such that the same class loader would load the jars for all wars inside that ear)? I have not found a way to configure that in the geronimo-application.xml. The closest directive I found is the dependency directive, but it seems like you can only load jars external to the ear (placed in the repository as separate compenents), but not for jars included
in the ears?

Thanks,

Yoel Spotts


Reply via email to