Ok I looked at these issues. Seems to be tricky...

Here is the stack trace I get : 

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: java.lang.NoClassDefFoundError:
net/atos/xastory/csm/core/product/Currency
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
        at java.lang.Class.getDeclaredMethods(Class.java:1791)
        at org.apache.openejb.finder.ClassFinder.<init>(ClassFinder.java:164)
        at org.apache.openejb.finder.ClassFinder.<init>(ClassFinder.java:146)
        at
org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:786)
        at
org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:549)
        at
org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:184)
        at
org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:243)
        at
org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:597)
        at
org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java:245)
        at
org.apache.openejb.tomcat.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:58)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:448)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        ... 6 more
Caused by: java.lang.ClassNotFoundException:
net.atos.xastory.csm.core.product.Currency
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        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.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:102)
        at
org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:50)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        ... 27 more


Tomcat StandardClassLoader does not find the Currency type.

To be honest, I'm a bit lost with classloaders. TempClassLoader is in charge
of loading sessions beans and entities while Tomcat class loader loads all
what is in openejb/lib ? Is that correct ?
Still investigating...

Regards,

Jean-Sébastien Scrève.


David Blevins wrote:
> 
> Also looking at this info: 
> https://issues.apache.org/jira/browse/OPENJPA-646
> 
> Jean-Sébastien, if you have a stacktrace of the ClassNotFoundException  
> that'd be great.
> 
> 
> -David
> 
> 
> On May 27, 2009, at 4:58 PM, David Blevins wrote:
> 
>> Moving this to the dev list.
>>
>> Still looking over the info but the svn revision for the isEnum  
>> method pulls up this info:
>>
>> http://svn.apache.org/viewvc?view=rev&revision=720223
>> http://issues.apache.org/jira/browse/OPENEJB-951
>>
>> -David
>>
>>
>> On May 27, 2009, at 9:56 AM, Jean-Sébastien Scrève wrote:
>>
>>>
>>> Hi,
>>>
>>> I have a pretty annoying problem with Enum types.
>>>
>>> I have the following session bean implementation :
>>>
>>> @WebService
>>> @Stateless (name =
>>> "net.atos.xastory.csm.contract.CatalogueStockManagementService")
>>> @Local (CatalogueStockManagementService.class)
>>> public class CatalogueStockManagementServiceImpl implements
>>> net.atos.xastory.csm.contract.CatalogueStockManagementService {
>>>
>>>     public Price getPrice() {
>>>             return new Price();
>>>     }
>>>     
>>>     private Currency getCurrency() {
>>>             return net.atos.xastory.csm.core.product.Currency.EUR;
>>>     }
>>> }
>>>
>>> Price is a POJO. Currency is an Enum type.
>>> I have a Class Not Found exception on the Currency type at OpenEJB  
>>> startup.
>>> (OpenEJB + Tomcat).
>>>
>>> I dug into the problem and I think I found the problem.
>>>
>>> In TempClassLoader I see the following change :
>>>
>>> // Annotation classes must be loaded by the normal classloader
>>> // So must Enum classes to prevent problems with the sun jdk.
>>> if (isAnnotationClass(bytes) || isEnum(bytes)) {
>>>           return Class.forName(name, resolve,
>>> getClass().getClassLoader());
>>> }
>>>
>>> isEnum was added recently and causes my problem. Was is the problem  
>>> we want
>>> to avoid with Jdk ?
>>> Shouldn't we try loading from TempClassLoader first then do a
>>> Class.forName() ?
>>>
>>> I can fill up a JIRA if want to.
>>>
>>> Regards,
>>>
>>> Jean-Sébastien Scrève.
>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://www.nabble.com/Enum-class-loading-in-a-session-bean-tp23746554p23746554.html
>>> Sent from the OpenEJB User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Re%3A-Enum-class-loading-in-a-session-bean-tp23752987p23757608.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Reply via email to