Meaningless Drivel is fun!*
The moose likes Struts and the fly likes Running struts examples Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Running struts examples" Watch "Running struts examples" New topic
Author

Running struts examples

Phoebe Song
Ranch Hand

Joined: Jan 17, 2002
Posts: 54
Hi

I downloaded and installed struts 1.2.9 into my computer, then copied struts webapps WAR files into tomcat_home/webapps folder, and they were deployed by the server, but when I run struts-blank and struts-mailreader, I got the following exception:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagExtraInfo
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:620)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
java.net.URLClassLoader.access$100(URLClassLoader.java:56)
java.net.URLClassLoader$1.run(URLClassLoader.java:195)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
java.lang.ClassLoader.loadClass(ClassLoader.java:306)
java.lang.ClassLoader.loadClass(ClassLoader.java:299)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
java.lang.ClassLoader.loadClass(ClassLoader.java:251)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1267)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:419)
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:248)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:162)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:423)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1552)
org.apache.jasper.compiler.Parser.parse(Parser.java:126)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:155)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

and here is my classpath:
CLASSPATH = C:\Tomcat\bin;C:\Program Files\Java\jdk1.5.0_06\bin; C:\Tomcat\common\lib\servlet-api.jar; C:\mysql-connector-java-3.1.12\mysql-connector-java-3.1.12-bin.jar;C:\struts\lib\struts.jar

and all struts jar files are in the WEB-INF/lib folder of each webapps. Any jar files I should add to the classpath? Tnank you in advance for any advises.
Merrill Higginson
Ranch Hand

Joined: Feb 15, 2005
Posts: 4864
The class identified in the error message is in jsp-api.jar, so this needs to be in your classpath. If you're using the default Tomcat configuration, this should already be in the classpath while you're running Tomcat.

Also, it's not a good idea to have struts.jar in your CLASSPATH variable. It's much better to have it in the /lib directory of the application. This is explained in this link.


Merrill
Consultant, Sima Solutions
Phoebe Song
Ranch Hand

Joined: Jan 17, 2002
Posts: 54
I added C:\Tomcat\common\lib\jsp-api.jar to the class path, but got the same result.

then I cross this thread,
http://www.coderanch.com/t/47161/Struts/java-lang-NoClassDefFoundError-javax-servlet

don't know if I should add j2ee.jar in class path or not. If so, I didn't find it in jdk1.5, where can I get it?
Phoebe Song
Ranch Hand

Joined: Jan 17, 2002
Posts: 54
Oh, I deleted struts.jar in class path, and I'm using Tomcat 5.5.16 and struts 1.2.9, and port number is 8000.
[ April 27, 2006: Message edited by: Phoebe Song ]
Merrill Higginson
Ranch Hand

Joined: Feb 15, 2005
Posts: 4864
While you're running Tomcat, your classpath is determined by what's in the conf/catalina.properties file.

You should have a line that looks like this:

common.loader=${catalina.home}/common/classes,${catalina.home}/common/i18n/*.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.jar

You will notice the last entry loads all jar files in the common/lib directory. By default, this directory contains both the servlet-api.jar file and the jsp-api.jar file.

Make sure that your catalina.properties file has similar entries.
Phoebe Song
Ranch Hand

Joined: Jan 17, 2002
Posts: 54
I have the same entries like yours. Here are the jar files in common/lib folder:
commons-el,japer-compiler,jsper-compiler-jdt,jsper-runtime,jsp-api,naming-factory,naming-factory-dbcp,naming-resources, servlet-api.

However, when I start Tomcat server, I got a "Tomcat Native library not found in java.library.path" error message, don't know have anything to do with the exception problem or not.
 
 
subject: Running struts examples