1

我在 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)

这个错误让我很困惑,因为它只在部署后出现。专家能帮我调试一下吗?提前致谢。

4

2 回答 2

0

采用:

<%@ page language="java" import="java.util.*,java.sql.*,com.sp.model.*" pageEncoding="ISO-8859-1"%>

问候;

于 2012-08-28T14:50:19.133 回答
0

如果您允许的话,MyEclipse 中的编辑器通常会为每种类型创建单独的导入语句。也就是说,在您的情况下,将添加以下语句:

<%page import="com.sp.model.UserBeanCL">

我不确定这是否会有所帮助,因为我无法复制您的问题,但如果您的控制台中的消息比您发布的更多,它可能会有所帮助,因为主要原因可能是一些解析问题,这将在前面出现控制台消息。

于 2012-08-29T08:17:49.600 回答