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: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to