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]>