I upgraded Tomcat 6.0.14 to 6.0.18.
Using Beyond Compare, I have not seen any major differences between 6.0.14
deployment (that includes also my proprietry webapp) and 6.0.18 deployment,
and everything work fine in v6.0.14 but I have problems in v6.018...
The problem is with the login process my webapp uses: it uses JAASRealm. I
have a login module that implements javax.security.auth.spi.LoginModule. It
uses a DB (MySQL) to retreive user name and password. All the relevant
LoginModule classes are packaged in to a JAR file named login.jar that is
placed in the deployment under apache-tomcat-6.0.18\lib folder. Some of the
classes in the login.jar make referneces to classes that located under the
webapp folder (that is,
apache-tomcat-6.0.18\webapps\webAppName\WEB-INF\classes). In v6.0.18
(exactly as in v6.0.14), I have added in the setclasspath.bat the following:
set
CLASSPATH=%CLASSPATH%;.;%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar;%CATALINA_HOME%\lib\el-api.jar;%CATALINA_HOME%\webapps\webAppName;%CATALINA_HOME%\webapps\webAppName\WEB_INF\classes;%CATALINA_HOME%\webapps\webAppName\WEB_INF\lib;%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_HOME%\bin\commons-daemon.jar;
Note that %CATALINA_HOME% is set to C:\Work\abc\apache-tomcat-6.0.18, which
is the correct place.
When trying to login, I receive the following exception:
javax.security.auth.login.LoginException: java.lang.NoClassDefFoundError:
com/expand/expandview/client/services/ClientUserLogicServices
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at
com.expand.expandview.client.servlets.login.EvDatabaseServerLoginModule.getUserLoginData(EvDatabaseServerLoginModule.java:35)
at
com.expand.expandview.client.servlets.login.EvUsernamePasswordLoginModule.login(EvUsernamePasswordLoginModule.java:141)
at
com.expand.expandview.client.servlets.login.MyLoginModule.login(MyLoginModule.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
at
javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
at
javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at
javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at
javax.security.auth.login.LoginContext.login(LoginContext.java:579)
at
org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:363)
at
org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:258)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:417)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:354)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
at
javax.security.auth.login.LoginContext.invoke(LoginContext.java:872)
at
javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
at
javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at
javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at
javax.security.auth.login.LoginContext.login(LoginContext.java:579)
at
org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:363)
at
org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:258)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:417)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:354)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
The following classes are included in login.jar:
>> com.expand.expandview.client.servlets.login.MyLoginModule
>> com.expand.expandview.client.servlets.login.EvUsernamePasswordLoginModule
>> com.expand.expandview.client.servlets.login.EvDatabaseServerLoginModule
The class com/expand/expandview/client/services/ClientUserLogicServices is
located under
%CATALINA_HOME%\webapps\webAppName\WEB_INF\classes
As I have already said, it runs OK in 6.0.14, but it doesn't work in 6.0.18.
I have looked on the changelog(v6.0.15/16/17 and 18) - but I didn't manage
to understand what is the change that causes that.
Can someone help?
Thanks.
--
View this message in context:
http://www.nabble.com/Upgrading-Tomcat-from-6.0.14-to-6.0.18---classpath-issue-tp21541405p21541405.html
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]