我在MyEclipse中创建了一个EE项目。
我在"WebRoot"下有一个jsp文件,它包含以下行:
<%@ page language="java" import="java.util.*,java.sql.*,com.sp.model.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String username=request.getParameter("username");
String password=request.getParameter("passwd");
UserBeanCL ubc=new UserBeanCL();
%>
...
我还在MyEclipse的"src"下创建了一个名为com.sp.model的包。从上面JSP代码的第一行可以看到,我使用import语句导入了该包。UserBeanCL只是一个普通的JAVA类,位于该包下,没有什么特别之处。MyEclipse中的一切看起来都很好。它确实找到了包和UserBeanCL类。
然而,在我将整个站点部署到Tomcat中并尝试在浏览器中运行这个JSP之后,它总是会出现错误并抱怨行:
UserBeanCL ubc=new UserBeanCL();
错误类似于:"UserBeanCL无法解析为类型"。堆栈是:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)
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:646)
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:722)
这个错误让我感到困惑,因为它只在部署后出现。专家能帮我在哪里调试吗?提前谢谢。
使用:
<%@ page language="java" import="java.util.*,java.sql.*,com.sp.model.*" pageEncoding="ISO-8859-1"%>
问候;
MyEclipse中的编辑器通常会为每种类型创建单独的导入语句,如果您允许的话。也就是说,在您的情况下,会添加以下语句:
<%page import="com.sp.model.UserBeanCL">
我不确定这是否会有帮助,因为我无法复制您的问题,但如果您的控制台中的消息比您发布的消息多,这可能会有所帮助,因为主要原因可能是一些解析问题,这些问题会出现在早期的控制台消息中。