【在线等】JSP中JavaBean问题 org.apache.jasper.JasperException

千里于野 2009-12-23 03:36:26
我的配置:MyEclipse 7.0M1
tomcat 6.0

已经知道是 jasper-compiler.jar的问题(我的Eclipse是3.3版的,从里面拷贝jasper-compiler.jar出来也不知道该放在tomcat或是MyEclipse中的哪个文件夹下面),请高手发一个给我,并且告诉我该怎样放置才能使JavaBean运行成功,thanks!

org.apache.jasper.JasperException: /WebRoot/MyJsp.jsp(11,0) The value for the useBean class attribute sale.goodsbean is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1200)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1155)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2392)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Generator.generate(Generator.java:3394)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:210)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
...全文
452 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangqiuli5552 2009-12-23
  • 打赏
  • 举报
回复
先把普通的不用jasper-runtime.jar的弄出来,让它可以调javabean,并显示出来!
wangqiuli5552 2009-12-23
  • 打赏
  • 举报
回复
你的jsp没有找到class文件,如果没有javabean当然可以正常浏览了!

在eclipse里,右键你的工程,选java build path,在source页的最底下有个default output folder栏,在里面添上"/项目名/jsp最外面的文件名/WEB-INF/classes" 就能让eclipse自动把class文件放到WEB-INF/classes下

你到上面写的这里去看看!!!
junjia 2009-12-23
  • 打赏
  • 举报
回复
不知道楼主是什么意思
你下一个MyEclipse 不是直接装上就可以用了吗
xuhailang00 2009-12-23
  • 打赏
  • 举报
回复
异常原因:pojo 有问题(残缺),另外你的编码格式很成问题。类名大写,属性名小写等都不按照规范来。越是规范,越是会少出问题。没仔细看。估计是单词拼写或者是规范性的问题。
千里于野 2009-12-23
  • 打赏
  • 举报
回复
配置是按照你说的,不过还是不能运行,刚刚差了点资料:

《《今天有点需求,需要用jasper-runtime.jar包。但是我在我的\apache-tomcat-6.0.16\lib目录下,怎么也找不到这个jar包。结果上网百度了一下。Tomcat6.0之前的版本以Tomcat5.5.20 压缩版为例,这个jasper-runtime.jar在Tomcat5.5.20\common\lib下就自带有的。但是在Tomcat6.0版本后lib包的位置调整了,现在只有lib在跟目录下。jasper-runtime.jar和jasper-compiler-jdt.jar、jasper-compiler.jar等都集成到jasper.jar包中去了。》》

我觉得可能是tomcat和MyEclipse兼容问题,之前写的不用JavaBean的Web Object都可以用IE进行浏览等操作,我打算把tomcat6.0卸了。装5.0试试

不过还是谢谢你了
wangqiuli5552 2009-12-23
  • 打赏
  • 举报
回复
在eclipse里,右键你的工程,选java build path,在source页的最底下有个default output folder栏,在里面添上"/项目名/jsp最外面的文件名/WEB-INF/classes" 就能让eclipse自动把class文件放到WEB-INF/classes下
wangqiuli5552 2009-12-23
  • 打赏
  • 举报
回复
你的jsp没有找到class文件。
不知道你是怎么eclipse和tomcat是配置的,
总而言之:在你程序发布的时候,目录结构是这样的

项目名/jsp文件
/WEB-INF/classes/JAVA编译好的class文件
/WEB-INF/lib/jar包
/WEB-INF/web.xml
你的目的是让eclipse编译之后自动把class文件放到WEB-INF/classes下,就可以运行了!
千里于野 2009-12-23
  • 打赏
  • 举报
回复
代码是网上找的测试代码

自己写的数据库调用代码可以运行
代码如下;
DBconnect.java:
package db;

import java.sql.*;

public class DBconnect {
// 驱动程序名
String driverName = "com.mysql.jdbc.Driver";
// 数据库用户名
String userName = "root";
// 密码
String userPasswd = "666666";
// 数据库名
String dbName = "worklog";
// 表名
String tableName = "user";
// 联结字符串
String url = "jdbc:mysql://localhost/" + dbName + "?user=" + userName
+ "&password=" + userPasswd;

public void get() {
try {
Class.forName(driverName).newInstance();
Connection connection = DriverManager.getConnection(url);
Statement stmt = connection.createStatement();
ResultSet rs = null;
String strsql = "select * from user where u_name like '" + "qwe"
+ "' and u_password like '" + "123" + "'";
rs = stmt.executeQuery(strsql);
if (rs.next()) {
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString("u_name"));
System.out.println(rs.getString("u_name"));
System.out.println("登录成功!");
} else {
System.out.println("输入错误,请返回登录页面重新登录。");
}
rs.close();
stmt.close();
connection.close();
} catch (Exception e) {
System.out.print(e);
}
}
}

DBtest.java

package db;

public class DBtest {

public static void main(String[] args) {
DBconnect db = new DBconnect();
db.get();
}

}

运行结果:
132
qwe
qwe
qwe
登录成功!
千里于野 2009-12-23
  • 打赏
  • 举报
回复
MyJsp.jsp :
<%@ page contentType="text/html;charset=GB2312"%>
<%//request.setCharacterEncoding("iso_8859_1");%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>goods bean</title>
</head>

<body>

<jsp:useBean id="goodsbean1" scope="session" class="sale.goodsbean" />
<%
goodsbean1.setProduct("clock");
goodsbean1.setPrice(17);
%>
使用方法1:
产品:<%= goodsbean1.getProduct()%><br>
税率:<%= goodsbean1.getPrice()%>

<%goodsbean1.setProduct("chair");
goodsbean1.setPrice(3);
%>
<br>使用方法2:
产品:<jsp:getProperty name="goodsbean1" property = "Product" />
<br>
税率:<jsp:getProperty name="goodsbean1" property = "Price" />

</body>
</html>

sale包下的 goodsbean.java :
package sale;

public class goodsbean {
String Product;
double Price;

public goodsbean() {
this.Product = "box";
this.Price = 5.0;
}

public void setProduct(String ProductName) {
this.Product = ProductName;
}

public String getProduct() {
return (this.Product);
}

public void setPrice(double priceValue) {
this.Price = priceValue;
}

public double getPrice() {
return (this.Price);
}
}
wangqiuli5552 2009-12-23
  • 打赏
  • 举报
回复
把你的代码贴出来看看!

81,091

社区成员

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

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