I am not able to get things working with Jersey unless I place all my Jersey
Libraries in EAR/lib - and to my discomfiture even the REST resources jar of
my WebApp to EAR/lib.  For now I have decided to adopt an alternate approach
- I have created an extension of LazyStopLoader and as a Classloader
delegate using a custom extension of TomEEWebappClassLoader that just
overrides the getResources method the way Jersey expects it (In-fact I too
feel that way - the resource URI as returned by the classloader should not
have a trailing '/' - the / does not make it a precise URI - though Jersey
could have handled it as a robust measure). I now set this custom loader in
context.xml of Tomcat ( right now I am setting it at server level - but I
would move it to the Webapp level). This works fine for me. Jersey is now
able to identify all resources - The REST app works fine without me having
to bundle Jersey libraries or the REST resources jar in EAR/lib. 

Two points in my opinion favor making the modification in
TomEEWebappClassLoader. 

1. The TomEE TempClassLoader which loads the classes in EAR/lib behaves just
fine - returns the resource URIs without any trailing '/'. Then why not
TomEEWebappClassLoader
2. A resource URI should be precise. In my opinion, the trailing '/' does
not make it precise.



--
View this message in context: 
http://tomee-openejb.979440.n4.nabble.com/Classloading-issues-integrating-Jersey-2-16-and-apache-tomee-plus-7-0-0-tp4678794p4678993.html
Sent from the TomEE Dev mailing list archive at Nabble.com.

Reply via email to