[weld-dev] Specializes bean in war causes unsatisfied resolution exception

Benjamin Confino BENJAMIC at uk.ibm.com
Mon Nov 28 10:56:12 EST 2016


Hello 

A customer of mine sent in a test application with the following 
structure:

A war file inside ear
Two jar files inside ear/lib
One jar file inside ear/war/WEB-INF/lib

There is a class inside one of the ear/lib jar files which @Injects a bean 
from the other ear/lib jar file

And there is a class inside the ear/war/WEB-INF/lib jar file that 
@Specializes the bean inside an ear/lib jar file 

(You can see the application at was_bugs/was_bug22 at master · 
thikade/was_bugs · GitHub ) 

Attempting to run this application on Weld results in an Unsatisfied 
Resolution Exception. When I remove the jar containing the @Specializes 
bean the application works correctly.


My first thought was that this application should not work, because the 
war file and it's internal jar would have a second classloader that would 
be invisible to the application classloader. However the customer 
attested, and I confirmed that this application works fine on 
OpenWebBeans. 

I do not think this is an integration issue, because I tested this on 
Wildfly and got the same error.


So it seems that Weld throws an Unsatisfied Resolution Exception if 
@specializes exists in a class that is loaded by a classloader which is 
not visible . 

What do you think is the correct behaviour is in this instance? From a 
classloading perspective a class inside ear/lib should not be able to see 
a class inside ear/war; but on the other hand the entire purpose of a 
@Specializes bean is that you drop it into your application and it 
replaces the original bean. It feels appropriate that you can drop in a 
war file containing the @Specializes bean and it just works without you 
having to do anything extra.

Best regards
Benjamin  

Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20161128/e0d80ff9/attachment.html 


More information about the weld-dev mailing list