You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by SCOTT FARQUHAR <SC...@sydneywater.com.au> on 2001/04/12 02:51:35 UTC

Re: Websphere class problem with log4j - Solved

I have solved this problem, but the solution was unrelated, so I didn't think of sending it to the list.  But here it is:

If you are interested - here's what happened:

When you import and EJB into Websphere, you must use a command line utility to import the classes into Websphere, as well as their configuration.

We bundle all the classes into one jar, and run the command line over that jar.  (Not my choice - I would prefer to separate EJB's into a separate jar and import them manually).  As it turns out, all my servlets were being loaded from this jar, and not through the normal web-container's classpath.  Why this happens I don't know.  I can tell you that if your servlets are being loaded from there, then they do not have access to the web container's classpath.  Hence my issue. (As log4j sits in the web container's classpath).

Solutions:

a) Remove Servlet from jar that gets loaded as EJBs

b) Include log4j classes in that jar.

(a) is the better solution, and that is what I am trying to get implemented here.


Thanks for chasing this up!

Scott

>>> Ceki Gülcü <cg...@qos.ch> 04/12/01 02:44am >>>

Have you solved the problem or do you still need help? Ceki

At 08:48 10.04.2001 +1000, you wrote:
>I know that it is probably a Websphere problem, but I'm hoping that perhaps someone has come across this before:
>
>When using log4j from a jsp, I have no problems.  As soon as I use it from a servlet, I get the following error:
>java.lang.NoClassDefFoundError: org/apache/log4j/Category
>
>Can anyone shed any light on why the jsp classloader has no problems, whilst the servlet one does?
>
>Thanks 
>
>Scott
>
>java.lang.NoClassDefFoundError: org/apache/log4j/Category
>        at com.swc.cibs.edeveloper.LogTest.doGet(LogTest.java:47)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>        at com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:626)
>        at com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:160)
>        at com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:287)
>        at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:105)
>        at com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:360)
>        at com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:775)
>        at com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManager.java:701)
>        at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:404)
>        at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:203)
>        at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:107)
>        at com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:77)
>        at com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
>        at com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:155)
>        at com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:300)
>        at com.ibm.servlet.engine.oselistener.SQEventListenerImp$ServiceRunnable.run(SQEventListenerImp.java:230)
>        at com.ibm.servlet.engine.oselistener.SQEventListenerImp.notifySQEvent(SQEventListenerImp.java:104)
>        at com.ibm.servlet.engine.oselistener.serverqueue.SQEventSource.notifyEvent(SQEventSource.java:212)
>        at com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.notifyService(SQWrapperEventSource.java:353)
>        at com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.run(SQWrapperEventSource.java:220)
>        at com.ibm.servlet.engine.oselistener.outofproc.OutOfProcThread$CtlRunnable.run(OutOfProcThread.java:248)
>        at java.lang.Thread.run(Thread.java:481)
>
>
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org 
>For additional commands, e-mail: log4j-user-help@jakarta.apache.org 

--
Ceki Gülcü     Web: http://qos.ch 
email: cgu@qos.ch or ceki_gulcu@yahoo.com 


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-user-help@jakarta.apache.org