geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Geronimo sees jars in servlet, but in any object created within this servlet throws NoClassDefFoundError
Date Mon, 23 Feb 2009 18:04:54 GMT
I'm hoping someone else will have time to investigate this in more  
detail.

I suspect you left out the next bit of stack trace which would show a  
log4j class trying to load the Connection class.  This will fail  
because the log4j classes are loaded in a classloader very near or at  
the root of the classloader graph and certainly don't have and javaee  
spec classes such as jms available.

I think people have dealt with this problem before and it would be  
great to have a wiki page on what to do (if we don't already).

One solution is to hide all the log4j classes from your app using the  
hidden-classes plan element and include a copy of  log4j in your app.

It may also be possible to just hide the jms appender classes and  
include those in your app.

hopefully this will point you in a useful direction.

thanks
david jencks

On Feb 23, 2009, at 8:31 AM, Rogue angel wrote:

>
> Hello everyone!
>
> I`m lost with geronimo 2.1.1! Situation:
> I have a Geronimo 2.1.1 (on 2.1.3 the same problem). I need to  
> register my
> logger in geronimo wich extendeds standart JMSAppender. Within tests
> everything with JMS messaging works just fine. I followed the guide to
> connect JMS applications in Geronimo, described in the wiki. Example
> application works just fine. BUT when i added my logger it breaks.  
> Example
> application throws exception on line with extended appender:
>
> 17:53:25,031 ERROR [[RegisterServlet]] Servlet.service() for servlet
> RegisterServlet threw exception
> java.lang.NoClassDefFoundError: javax/jms/Connection
>        at webbjms.RegisterServlet.doGet(RegisterServlet.java:118)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>        at
> org 
> .apache 
> .catalina 
> .core 
> .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 
> 290)
>        at
> org 
> .apache 
> .catalina 
> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>    ..............
>
> So, before line with constructor javax/jms/Connection exists and in  
> this
> line it vanishes. 0_o
> Have you ever seen situation when classes are visible within  
> servlet, but
> not visible in any other classes called in this servlet?
>
> I tried:
> - add jars into lib folder
> - check jar versions, for both extended appender and example  
> application is
> equal.
> - deployed jars into geronimo repository
>
> Question: How to make any other class, except called servlet, to see  
> jar
> with Connection class in Geronimo?
>
> Here is zip with test application and code
> http://www.nabble.com/file/p22164907/webbJMS.zip webbJMS.zip
> In this example: UserServlet and AdminServlet are example application,
> RegisterServlet - example application with registering appender and  
> throws
> NoClassDefFoundError.
> -- 
> View this message in context: http://www.nabble.com/Geronimo-sees-jars-in-servlet%2C-but-in-any-object-created-within-this-servlet-throws-NoClassDefFoundError-tp22164907s134p22164907.html
> Sent from the Apache Geronimo - Users mailing list archive at  
> Nabble.com.
>


Mime
View raw message