Tomcat won't compile jsps if they are in any directory other than root
843840Oct 24 2007 — edited Oct 25 2007I'm running a new instance of Tomcat, and can't get a simple jsp file to compile, if it's in any directory other than the root.
The jsp is:
<%@ page import="test.Simple" %>
<%@ page contentType="text/html" language="java" %>
<html>
<body><%=Simple.makeText()%>
</body>
</html>
and the Simple class is:
package test;
import java.util.Random;
public class Simple {
public static String makeText() {
return String.valueOf(new Random().nextInt());
}
}
When I place the jsp in the root directory, it works fine.
When I place the jsp in any subfolder (eg: /debug/1b.jsp), I get the following error:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
Only a type can be imported. test.Simple resolves to a package
An error occurred at line: 14 in the jsp file: /1b.jsp
Generated servlet error:
Simple cannot be resolved
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
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)
root cause
org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
Only a type can be imported. test.Simple resolves to a package
An error occurred at line: 14 in the jsp file: /1b.jsp
Generated servlet error:
Simple cannot be resolved
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
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)
Here's the server info:
Server version: Apache Tomcat/5.5.25
Server built: Sep 24 2007 11:31:18
Server number: 5.5.25.0
OS Name: Linux
OS Version: 2.6.20.20-071008a
Architecture: amd64
JVM Version: 1.5.0_10-b03
JVM Vendor: Sun Microsystems Inc.
Using fedora core 6.
I looked into the Tomcat work directory, and it looked as if the jsp was successfully converted to a java file. I'm not sure where to look, as all the settings are defaults.
Any help is greatly appreciated. Thanks