JavaBean的奇怪问题

will8552 2008-09-13 08:54:10
完全相同的一个JavaBean测试文件

useBean.jsp内容如下:
<%@ page contentType="text/html; charset=gb2312" import="test.SimpleBean" %>
<HTML>
<HEAD>
<TITLE>Reusing JavaBeans in JSP</TITLE>
</HEAD>

<BODY>
<CENTER>
<TABLE BORDER=1>
<TR><TH>在JSP页面中重用JavaBeans组件</th></tr></TABLE>
</CENTER>
<P>

<jsp:useBean id="test" class="test.SimpleBean"/>
<jsp:setProperty name="test" property="message" value="welcome to use JavaBeans com"/>
<jsp:getProperty name="test" property="message"/>

</BODY>
</HTML>

其中SimpleBean.java内容如下:
package test;

public class SimpleBean{
private String message;

public String getMessage(){
return message;
}

public void setMessage(String mess){
message = mess;
}
}

在tomcat的webapps下有两个文件夹myjsp 及JSP
方式一
myjsp\useBean.jsp
myjsp\WEB-INF\classes\test\SimpleBean.java
myjsp\WEB-INF\classes\test\SimpleBean.class

方式二
JSP\02\useBean.jsp
JSP\02\WEB-INF\classes\test\SimpleBean.java
JSP\02\WEB-INF\classes\test\SimpleBean.class

在IE7.0地址栏输入 http://localhost:8888/myjsp/usebean.jsp 运行正确;


在IE7.0地址栏输入 http://localhost:8888/JSP/02/usebean.jsp 运行错误;

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: org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause

org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:620)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause

java.lang.ClassNotFoundException: org.apache.jsp._02.usebean_jsp
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:618)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.


为什么这样,是否是因为路径问题?

...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
will8552 2008-09-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huoyin 的回复:]
JSP/02/目录下也有WEB-INF/classes/test/SimpleBean.class的文件的.

应当是:

JSP目录下,不是JSP/02/
[/Quote]
WEB-INF 文件夹不是应当跟.jsp文件在同一个目录的吗? JSP/和JSP/02/只是多加了一个文件夹而已哦.

不过我把usebean.jsp 和 WEB-INF/classes/test/SimpleBean.class移到JSP文件下确实可以运行

为什么会这样只是多一个02/文件夹, 在02文件下其他jsp文档 servlet照样可以运行,唯独javaBean不可以.
goosman 2008-09-13
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=gb2312" import="test.SimpleBean" %>
你这里import的类路径是不是搞错?
huoyin 2008-09-13
  • 打赏
  • 举报
回复
JSP/02/目录下也有WEB-INF/classes/test/SimpleBean.class的文件的.

应当是:

JSP目录下,不是JSP/02/
will8552 2008-09-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Little_qd 的回复:]
JSP放哪无所
WEB-INF要放在应用根目录下
JSP/WEB-INF/classes
要不还要改配置
[/Quote]

目录没有错的啊, 使用JavaBean需要特殊配置吗, myjsp目录也没有另外加配置确可以运行.
will8552 2008-09-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huoyin 的回复:]
在IE7.0地址栏输入 http://localhost:8888/myjsp/usebean.jsp 运行正确;


在IE7.0地址栏输入 http://localhost:8888/JSP/02/usebean.jsp 运行错误;


上面这两个用的是不同的servlet,myjsp底下有WEB-INF/classes/test/SimpleBean.class而另外一个底下没有
[/Quote]

JSP/02/目录下也有WEB-INF/classes/test/SimpleBean.class的文件的.
huoyin 2008-09-13
  • 打赏
  • 举报
回复
在IE7.0地址栏输入 http://localhost:8888/myjsp/usebean.jsp 运行正确;


在IE7.0地址栏输入 http://localhost:8888/JSP/02/usebean.jsp 运行错误;


上面这两个用的是不同的servlet,myjsp底下有WEB-INF/classes/test/SimpleBean.class而另外一个底下没有
Little_qd 2008-09-13
  • 打赏
  • 举报
回复
JSP放哪无所
WEB-INF要放在应用根目录下
JSP/WEB-INF/classes
要不还要改配置

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧