我制作了一个Tomcat项目,但我遇到了问题;我不能用自己的课。 这是一个例子:
MyContext / test.jsp的
<%@page language="java" import="myPackage.*" %>
<%=new MyClass()%>
MyContext / WEB-INF / MyPackage的/ MyClass.java
package myPackage;
import java.util.*;
public class MyClass{
public String toString(){
return "this is the string from my class!";
}
}
目录树:
MyContext
|---test.jsp
`---WEB-INF
`---classes
`---myPackage
|---MyClass.class
`---MyClass.java
当我访问MyContext / test.jsp时出现错误:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 2 in the jsp file: /test.jsp
MyClass cannot be resolved to a type
1: <%@page language="java" import="myPackage.*" %>
2: <%=new MyClass()%>
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:468)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
我的环境是 Ubuntu Server 14.04, Java版本1.7.0_55, Tomcat 7。
请帮帮我。
答案 0 :(得分:1)
更改MyClass.java
将package myPackage
更改为MyPackage
答案 1 :(得分:1)
您写了错误的包名称,如其他答案中所述。
Java 区分大小写。
myPackage
和MyPackage
两者都不同。
我建议您始终遵循命名惯例,这样您就不会再遇到这样的错误。
包名应始终以小写字母开头。
答案 2 :(得分:0)
包名称区分大小写。像这样更改您的导入行:
<%@page language="java" import="myPackage.*" %>
还要确保包目录名为myPackage
,而不是MyPackage
。