quality@glassfish.java.net

Re: [Fwd: EAR working on v2.1 fails do deploy on v3-b66]

From: Hong Zhang <Hong.Zhang_at_Sun.COM>
Date: Fri, 09 Oct 2009 20:28:40 -0400

Hi, Judy

> "Ideally, the verifier should've had a test to catch this if the
> application is packaged this way (packaging bean impl class in the
> referencing bundle)."
>
> Thanks Hong. It is so nice to have you here to help answer deployment
> question. Is this some thing we can fix, may
> be Paul can log a bug ?
>
As I mentioned in my earlier email, we had to change the code in this
area to support new requirement (ejb lite etc) from EE6 spec.
Paul could change the packaging as recommended in the netbeans bug:

http://www.netbeans.org/issues/show_bug.cgi?id=173195
    

Replicate the common interfaces and supporting types in the .war instead
of using the .war manifest classpath. An alternative is to package the
common interface code in a library .jar and put it in a directory named
"lib" at the .ear level.

Thanks,
- Hong

>>>I use maven to build the EAR but you're right, the bean is indirectly referenced in included WARs manifest.
>>>
>>>Just to see if I understood my issue, here is how is packaged my EAR:
>>>
>>>I use "skinny wars" with <class-loader delegate="true"/> in sun-web.xml.
>>>I packaged ejbs implementations and their interfaces in the same jar, at the ear's root.
>>>WARs manifests references theses ejb-jars.
>>>Boom, with 2 WARs I get the error message stating that there is 3 implementations for the same ejb interface.
>>>
>>>
>>>
>> Yes, this was what it was complaining about...
>>
>>>What I don't understand is that as I use classloader delegation I thought that it would find the implementation only
>>>once. I am right or wrong here ? :)
>>>
>>>
>>>
>> This has nothing to do with the classloading. :-) This validation
>> part happens before loading the component into the container.
>> Ideally, the verifier should've had a test to catch this if the
>> application is packaged this way (packaging bean impl class in the
>> referencing bundle).
>>
>> - Hong
>>
>>>Le vendredi 09 octobre 2009 16:36:50, Hong Zhang a écrit :
>>>
>>>
>>>>Mostly like it's a packaging issue. In v3, we had to make some changes
>>>>in this area to support the new ejb lite etc for EE6, so the behavior is
>>>>different (more strict check now).
>>>>
>>>>Can you check in the referencing module, that the Bean class is not
>>>>packaged directly and indirectly (through Manifest Class-Path)? If your
>>>>application is packaged by NetBeans, there is this open bug in NetBeans
>>>>right now:
>>>>
>>>>http://www.netbeans.org/issues/show_bug.cgi?id=173195
>>>>
>>>>
>>>
>>>
>>>
>>
>