The problem was in log4j JMSAppender. When i tried to create an instance a ClassDefFound error thowed. I think geronimo some how looks in jars versions and rejects some of them.
My solution: I created exact copy of JMSAppender in my project but with other name and extends it and it`s works! It would be helpful if some one will explain the issue reason. djencks wrote: > > 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. >> > > > -- 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-tp22164907s134p22180374.html Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
