Has anybody run into this problem? I apologize if this is the wrong list to
post this message, but it is affecting ActionServlet.

It may be a problem in JRun's web app class loading implementation or in
the commons-logging implementation. The exception occurs if you try to
preload the ActionServlet. But if the ActionServlet is initialized from a
request it is loaded just fine. It looks like the
org.apache.commons.logging.LogFactory.findClassLoader() maybe returning the
wrong ClassLoader when called when an ActionServlet is being preloaded...all
the struts and commons-*.jar files are in the usual web-inf/lib folder.

I would really appreciate it if anybody has time to confirm this problem.
Assuming this is a bug in logging, and based on my very limited
understanding of commons-logging, I'd like to suggest that the ActionServlet
pass its ClassLoader when calling LogFactory.getLog()...but this change in
ActionServlet would mean a change to LogFactory. There may be a difference
on what ClassLoaders are available if a servlet is initialized from a
preload, versus it being initialized from a request. I'm assuming
LogFactory.findClassLoader() only works for the latter. 

This is a show stopper for those who are extending ActionServlet to do some
extra initialization which needs to be initialized before anything else. Its
forcing me to go back to a struts nightly build that does not have the
commons-logging implementation. 

If this happens to be a bug in JRuns heirarchical ClassLoader
implementation. Then this whole issue is moot.

Thanks!

-ronel

03/25 14:44:34 error (JRun) Could not pre-load servlet: action
[javax.servlet.ServletException: Could not instantiate
org.apache.struts.action.ActionServlet]
[1]org.apache.commons.logging.LogConfigurationException:
java.lang.ClassNotFoundException:
org.apache.commons.logging.impl.LogFactoryImpl
        at
org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:497)
        at
org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:350)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:381)
        at
org.apache.struts.action.ActionServlet.<init>(ActionServlet.java:331)
        at java.lang.Class.newInstance0(Native Method)
        at java.lang.Class.newInstance(Unknown Source)
        at
allaire.jrun.servlet.JRunServletLoader.loadServletInstance(../servlet/JRunSe
rvletLoader.java:197)
        at
allaire.jrun.servlet.JRunServletLoader.loadServletInstance(../servlet/JRunSe
rvletLoader.java:161)
        at
allaire.jrun.servlet.JRunServletLoader.loadServlet(../servlet/JRunServletLoa
der.java:149)
        at
allaire.jrun.servlet.JRunSE.getServletReference(../servlet/JRunSE.java:1705)
        at
allaire.jrun.servlet.JRunSE.preloadServlets(../servlet/JRunSE.java:1371)
        at allaire.jrun.servlet.JRunSE.init(../servlet/JRunSE.java:236)
        at allaire.jrun.ServletService.init(../ServletService.java:66)
        at allaire.jrun.ServletService.init(../ServletService.java:31)
        at
allaire.jrun.servlet.JRunServletLoader.loadServletInstance(../servlet/JRunSe
rvletLoader.java:203)
        at
allaire.jrun.servlet.JRunSE.initService(../servlet/JRunSE.java:891)
        at
allaire.jrun.servlet.JRunSE.initServices(../servlet/JRunSE.java:858)
        at
allaire.jrun.servlet.JvmContext.initServices(../servlet/JvmContext.java:130)
        at allaire.jrun.servlet.JRunSE.init(../servlet/JRunSE.java:222)
        at
allaire.jrun.servlet.JvmContext.init(../servlet/JvmContext.java:69)
        at allaire.jrun.ServletService.init(../ServletService.java:66)
        at allaire.jrun.ServletService.init(../ServletService.java:31)
        at JRun.main(../../../JRun.java:172)
[0]javax.servlet.ServletException: Could not instantiate
org.apache.struts.action.ActionServlet
        at
allaire.jrun.servlet.JRunServletLoader.loadServletInstance(../servlet/JRunSe
rvletLoader.java:209)
        at
allaire.jrun.servlet.JRunServletLoader.loadServletInstance(../servlet/JRunSe
rvletLoader.java:161)
        at
allaire.jrun.servlet.JRunServletLoader.loadServlet(../servlet/JRunServletLoa
der.java:149)
        at
allaire.jrun.servlet.JRunSE.getServletReference(../servlet/JRunSE.java:1705)
        at
allaire.jrun.servlet.JRunSE.preloadServlets(../servlet/JRunSE.java:1371)
        at allaire.jrun.servlet.JRunSE.init(../servlet/JRunSE.java:236)
        at allaire.jrun.ServletService.init(../ServletService.java:66)
        at allaire.jrun.ServletService.init(../ServletService.java:31)
        at
allaire.jrun.servlet.JRunServletLoader.loadServletInstance(../servlet/JRunSe
rvletLoader.java:203)
        at
allaire.jrun.servlet.JRunSE.initService(../servlet/JRunSE.java:891)
        at
allaire.jrun.servlet.JRunSE.initServices(../servlet/JRunSE.java:858)
        at
allaire.jrun.servlet.JvmContext.initServices(../servlet/JvmContext.java:130)
        at allaire.jrun.servlet.JRunSE.init(../servlet/JRunSE.java:222)
        at
allaire.jrun.servlet.JvmContext.init(../servlet/JvmContext.java:69)
        at allaire.jrun.ServletService.init(../ServletService.java:66)
        at allaire.jrun.ServletService.init(../ServletService.java:31)
        at JRun.main(../../../JRun.java:172)

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to