geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Spotts, Joel \(ISS Atlanta\)" <jspo...@us.ibm.com>
Subject RE: Third party jars inside ear files
Date Mon, 11 Dec 2006 19:33:48 GMT
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,J2EEApplicati
on=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(EJBP
roxyFactory.java:397)
 at
org.openejb.proxy.EJBProxyFactory$InterfaceMaps.<init>(EJBProxyFactory.j
ava: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(NativeConstructorA
ccessorImpl.java:39)
 at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons
tructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
 at
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInst
ance.java:933)
 at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GB
eanInstanceState.java:267)
 at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstance
State.java:102)
 at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBea
nInstanceState.java:124)
 at
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInst
ance.java:540)
 at
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKe
rnel.java:379)
 at
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGB
eans(ConfigurationUtil.java:374)
 at
org.apache.geronimo.kernel.config.KernelConfigurationManager.start(Kerne
lConfigurationManager.java:187)
 at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfig
uration(SimpleConfigurationManager.java:527)
 at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfig
uration(SimpleConfigurationManager.java:508)
 at
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassB
yCGLIB$$ce77a924.invoke(<generated>)
 at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
 at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInv
oker.java:38)
 at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.j
ava:122)
 at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.jav
a:817)
 at
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
 at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperation
Invoker.java:35)
 at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyM
ethodInterceptor.java:96)
 at
org.apache.geronimo.kernel.config.EditableConfigurationManager$$Enhancer
ByCGLIB$$4ac69885.startConfiguration(<generated>)
 at
org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartComman
d.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:david_jencks@yahoo.com] 
Sent: Friday, December 08, 2006 7:00 PM
To: user@geronimo.apache.org
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 



Mime
View raw message