I am having an odd problem with the coupled security service on T2.2
RC2. I have extended TurbineUser and the security service is
*sometimes* throwing an exception on startup. Here is the section of
code that is throwing the exception:
Disclaimer: The code is modified from its original for to include more
logging.
public void init(ServletConfig config)
throws InitializationException
{
String userManagerClassName = getProperties().getProperty(
SecurityService.USER_MANAGER_KEY,
SecurityService.USER_MANAGER_DEFAULT);
String userClassName = getProperties().getProperty(
SecurityService.USER_CLASS_KEY,
SecurityService.USER_CLASS_DEFAULT);
try
{
log.debug("Using class "+userClassName+" for security user
class");
userClass = Class.forName(userClassName);
}
catch (java.lang.NoClassDefFoundError e)
{
log.fatal( "Could not create instance of userClass object",
e );
throw new InitializationException(
"BaseSecurityService.init: Failed create a Class object
for User implementation", e);
}
catch (Exception e)
{
log.fatal( "Could not create instance of userClass object",
e );
throw new InitializationException(
"BaseSecurityService.init: Failed create a Class object
for User implementation", e);
}
<snip>
}
}
Here is the output from turbine.log
2002-11-27 16:49:39,939 [Thread-5] INFO system - Start Initializing
service (early): SecurityService
2002-11-27 16:49:39,979 [Thread-5] DEBUG
org.apache.turbine.services.security.BaseSecurityService - Using class
com.nequalsone.om.NeoUser for security user class
2002-11-27 16:49:39,979 [Thread-5] FATAL
org.apache.turbine.services.security.BaseSecurityService - Could not
create instance of userClass object
java.lang.NoClassDefFoundError: com.nequalsone.om.BaseNeoUser
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at
org.apache.turbine.services.security.BaseSecurityService.init(BaseSecuri
tyService.java:199)
at
org.apache.turbine.services.TurbineBaseService.init(TurbineBaseService.j
ava:108)
at
org.apache.turbine.services.BaseInitableBroker.initClass(BaseInitableBro
ker.java:149)
at
org.apache.turbine.services.BaseServiceBroker.doInitService(BaseServiceB
roker.java:224)
at
org.apache.turbine.services.BaseServiceBroker.initServices(BaseServiceBr
oker.java:193)
at org.apache.turbine.Turbine.init(Turbine.java:257)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.jav
a:924)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:6
58)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:214)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:239
6)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
lve.java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:40
5)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:380)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:50
8)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:533)
at java.lang.Thread.run(Thread.java:536)
2002-11-27 16:49:39,979 [Thread-5] ERROR system -
java.lang.NoClassDefFoundError: com.nequalsone.om.BaseNeoUser
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at
org.apache.turbine.services.security.BaseSecurityService.init(BaseSecuri
tyService.java:199)
rethrown as
org.apache.turbine.services.InitializationException:
BaseSecurityService.init: Failed create a Class object for User
implementation: com.nequalsone.om.BaseNeoUser
at
org.apache.turbine.services.security.BaseSecurityService.init(BaseSecuri
tyService.java:204)
at
org.apache.turbine.services.TurbineBaseService.init(TurbineBaseService.j
ava:108)
at
org.apache.turbine.services.BaseInitableBroker.initClass(BaseInitableBro
ker.java:149)
at
org.apache.turbine.services.BaseServiceBroker.doInitService(BaseServiceB
roker.java:224)
at
org.apache.turbine.services.BaseServiceBroker.initServices(BaseServiceBr
oker.java:193)
at org.apache.turbine.Turbine.init(Turbine.java:257)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.jav
a:924)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:6
58)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:214)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:239
6)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
lve.java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:40
5)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:380)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:50
8)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:533)
at java.lang.Thread.run(Thread.java:536)
2002-11-27 16:49:39,989 [Thread-5] INFO system - Start Initializing
service (early): PoolBrokerService
Now, I have made sure that my custom user class is being referenced
properly in TurbineResources.properties. It does start to load my class
but throws an exception loading the superclass. The superclass does
exist. The class file is in WEB-INF/classes.
Any ideas????
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>