Nightmare: Upgrading Tomcat 5.5 to 6.0

I am trying to upgrade a perfectly working embedded Tomcat 5.5 to Tomcat 6.0. I understand that all I need to do is replace Tomcat 5.5 jars 6.0. This is what I did.

So, I replaced the following banks:

catalina-5.0.28.jar catalina-5.5.9.jar catalina-optional-5.5.9.jar 
commons-el.jar commons-modeler-1.1.0.jar jasper-compiler-jdt.jar 
jasper-compiler.jar jasper-runtime.jar jmx-5.0.28.jar jsp-api-2.0.jar 
naming-factory.jar naming-resources.jar servlet-api-2.4.jar 
servlets-default.jar tomcat-coyote.jar tomcat-http.jar tomcat-util.jar

with:

annotations-api.jar  catalina.jar    jasper.jar         tomcat-dbcp.jar
catalina-ant.jar     el-api.jar      jsp-api.jar        tomcat-i18n-es.jar
catalina-ha.jar      jasper-el.jar   servlet-api.jar    tomcat-i18n-fr.jar
catalina-tribes.jar  jasper-jdt.jar  tomcat-coyote.jar  tomcat-i18n-ja.jar
tomcat-juli.jar

As soon as I start the server, I get the following message in the logs at the INFO level:

INFO: Starting Servlet Engine: Apache Tomcat/6.0.29
Dec 31, 2010 6:04:18 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/usr/local/blah/blue/./WEB-INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

Based on this explanation, I need to delete the jar file with the conflicting Servlet.class. I swear to God, there is no other inconsistent jar file, I am grepped system wide for Servlet.class, it matched only servlet-api.jar.

I also downloaded javaee.jar and replaced it with servlet-api.jar, with the same help.

, , , tomcat . , Servlet.class , -api.jar " " , -api.jar, . :

FINE:  Checking for javax/servlet/Servlet.class
Jan 2, 2011 7:39:33 AM org.apache.catalina.loader.WebappLoader setRepositories
FINE: Deploy JAR /WEB-INF/lib/servlet-api.jar to /usr/local/blah/blue/./WEB-INF/lib/servlet-api.jar
Jan 2, 2011 7:39:33 AM org.apache.catalina.loader.WebappClassLoader addJar
FINE: addJar(/WEB-INF/lib/servlet-api.jar)
Jan 2, 2011 7:39:33 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
FINE:  Checking for javax/servlet/Servlet.class
Jan 2, 2011 7:39:33 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/usr/local/blah/blue/./WEB-INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Jan 2, 2011 7:39:33 AM org.apache.catalina.loader.WebappLoader setRepositories

UPDATE "jar not added", servlet-api.jar (, $CATALINA_HOME/common/lib). GUI - ( 404), URL:( , URL- , . UPDATE

, Tomcat ! URL , ( , , " web.xml, . 404 .) ( )

Jan 2, 2011 9:40:01 AM org.apache.catalina.connector.CoyoteAdapter parseSessionCookiesId
FINE:  Requested cookie session id is 0FBA716E3F9B0147C3AF7ABAE3B1C27B
Jan 2, 2011 9:40:01 AM org.apache.catalina.authenticator.AuthenticatorBase invoke
FINE: Security checking request GET /login.jsp
Jan 2, 2011 9:40:01 AM org.apache.catalina.realm.RealmBase findSecurityConstraints
FINE:   Checking constraint 'SecurityConstraint[protected]' against GET /login.jsp --> false
Jan 2, 2011 9:40:01 AM org.apache.catalina.realm.RealmBase findSecurityConstraints
FINE:   Checking constraint 'SecurityConstraint[protected]' against GET /login.jsp --> false
Jan 2, 2011 9:40:01 AM org.apache.catalina.realm.RealmBase findSecurityConstraints
FINE:   Checking constraint 'SecurityConstraint[protected]' against GET /login.jsp --> false
Jan 2, 2011 9:40:01 AM org.apache.catalina.realm.RealmBase findSecurityConstraints
FINE:   Checking constraint 'SecurityConstraint[protected]' against GET /login.jsp --> false
Jan 2, 2011 9:40:01 AM org.apache.catalina.realm.RealmBase findSecurityConstraints
FINE:   No applicable constraint located
Jan 2, 2011 9:40:01 AM org.apache.catalina.authenticator.AuthenticatorBase invoke
FINE:  Not subject to any constraint
Jan 2, 2011 9:40:01 AM org.apache.catalina.core.StandardWrapper allocate
FINEST:   Returning non-STM instance

, , .

, , jsp , "helloooo" WEB-INF ( ). . jsp WEB-INF ().

, , . 20-24 .

?

+3
4

, : . , , Tomcat 5.5, Tomcat 6.0. .

mtraut . , .:)

0

-api.jar tomcat. , , . Classloader webapp "" servlet.jar, .

, ClassLoaders 6.0 5.5, , .

+2

Tomcat 5.5 Tomcat 6.0 . , WAR Tomcat , . , , , JAR -.

Tomcat 6.0, , JAR Tomcat 6.0, , , Tomcat 6.0, WAR Tomcat 6.

, , , , , Tomcat , .

, , , logging.properties, .

http://tomcat.apache.org/tomcat-6.0-doc/logging.html

!

+2

- -, 5.5.

@daniel, - jar, . , - servlet-api. -api .

  • , ( tomcat).
  • , tomcat -api -.
  • tomcat

,

\yourapp
|
+ lib
|
+ webapp
  |
  + lib (this is where your webapp lives, WITHOUT servlet-api)

JavaEE - : -)

yourapp\lib tomcat. .

yourapp\webapp\lib webapp. tomcat, webapp, - .

, - , JSP. ?

You must take care of the context of the web application you deployed the application to. In the log, I see that you are using the root context. It's true? If, for example, you said

  tomcat.addWebapp("foo", appBase);

in your embed, you should request / foo / servlet, not / servlet in your browser.

+1
source

Source: https://habr.com/ru/post/1783075/


All Articles