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.