这个错误的可能原因是什么?
代码中加入这两行就抱错:
<jsp:useBean id="ifreportbean" scope="session" class="report.wapCreateReport" />
<jsp:setProperty name="ifreportbean" property="*" />
不加就没问题.
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: ch/ess/excel/ExcelFile
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
root cause
java.lang.NoClassDefFoundError: ch/ess/excel/ExcelFile
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:1610)
java.lang.Class.getConstructor0(Class.java:1922)
java.lang.Class.newInstance0(Class.java:278)
java.lang.Class.newInstance(Class.java:261)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1212)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3261)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:244)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:461)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:442)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:430)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:274)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.
--------------------------------------------------------------------------------
Apache Tomcat/5.0.25
问题点数:100、回复次数:25Top
1 楼yashucn()回复于 2004-09-03 09:53:43 得分 10
NoClassDefFoundError 肯定没有找到你用的这个beanTop
2 楼ruir(瑞儿)回复于 2004-09-03 09:56:49 得分 0
WEB-INF\src\ch\ess\excel\ExcelFile.java
有!Top
3 楼ruir(瑞儿)回复于 2004-09-03 09:59:20 得分 0
WEB-INF\classes\ch\ess\excel\ExcelFile.class有!
WEB-INF\classes\report\wapCreateReport.class有!Top
4 楼Shires(Trombone)回复于 2004-09-03 10:06:30 得分 5
upTop
5 楼vision2000(弦惊塞外)回复于 2004-09-03 10:10:50 得分 10
CLASSPATH 里加载 servlet.jar?Top
6 楼ruir(瑞儿)回复于 2004-09-03 10:14:06 得分 0
servlet.jar应该没问题的。我可以运行struts.Top
7 楼yangzuyu12(秋天的童话)回复于 2004-09-03 11:22:43 得分 10
classpath 问题Top
8 楼learnner( )回复于 2004-09-03 11:29:10 得分 10
WEB-INF\classes\ch\ess\excel\ExcelFile.class有!
WEB-INF\classes\report\wapCreateReport.class有!
后者找不到前者,看看包封装Top
9 楼ruir(瑞儿)回复于 2004-09-03 11:44:12 得分 0
这两个.java文件在Jbuilder里面编译通过了没有抱错。怎么会找不到呢?Top
10 楼yswift(眼睛)回复于 2004-09-03 11:56:30 得分 12
java.lang.Class.privateGetDeclaredConstructors(Class.java:1610)
有默认构造函数吗?Top
11 楼xfcy2003(xfcy2003)回复于 2004-09-03 12:03:35 得分 15
同意yswift的意见.因为你在
<jsp:useBean id="ifreportbean" scope="session" class="report.wapCreateReport" />
<jsp:setProperty name="ifreportbean" property="*" />
中调用一个构造函数,这个构造函数会调用默认构造函数,所以会出这个问题。Top
12 楼ruir(瑞儿)回复于 2004-09-03 13:51:31 得分 0
代码太长了贴不下,把结构贴出来,大家看看怎么改:
wapCreateReport.java:
package xxx
import xxx
public class wapCreateReport extends wap
{
protected static String category_head="<th bgcolor=\"#CCCCFF\">";
protected static String category_end="</th>";
.......
public wapCreateReport(){}
public static StringBuffer display_category(String[] items){
......
}
.....很多其他方法
public void buildExcelReport(String[] itemhead,String[][] data,String title,String report_time,String creator,boolean doSave,OutputStream out) {
}
}
ExcelFile.java:
package xxx
import xxx
public class ExcelFile
{ private String fileName;
.......
public ExcelFile(String s)
{
fileName = s;
os = null;
init();
}
public ExcelFile(OutputStream outputstream)
{
fileName = null;
os = outputstream;
init();
}
private void init()
{
recordList = new ArrayList();
addRecord(new BOFRecord());
horizPageBreakList = new ArrayList();
vertPageBreakList = new ArrayList();
}
.......很多其他方法
}
谢谢!
Top
13 楼ruir(瑞儿)回复于 2004-09-03 15:05:36 得分 0
谢谢!Top
14 楼warehouseleet(堆栈.net)回复于 2004-09-03 15:08:32 得分 10
你确定找到了这个bean了么??
放松一下,,然后在看看 !
Top
15 楼ruir(瑞儿)回复于 2004-09-03 15:23:12 得分 0
本人菜鸟,请明示!Top
16 楼ruir(瑞儿)回复于 2004-09-03 15:48:44 得分 0
到底是jsp没有找到wapCreateReport.class还是wapCreateReport.class没有找到ExcelFile.class??
那个文件的构造函数没有??
周末了,希望能尽快弄好。谢谢大家。Top
17 楼ruir(瑞儿)回复于 2004-09-03 16:16:07 得分 0
upTop
18 楼opencsdn(虚心求教)回复于 2004-09-03 16:31:12 得分 8
把你wapCreateReport 类中的数据成员都贴上来!Top
19 楼fengyun1314(追梦)回复于 2004-09-03 16:39:25 得分 5
是不是路径错误?Top
20 楼ruir(瑞儿)回复于 2004-09-03 16:48:27 得分 0
全局变量就这些:
protected static String category_head="<th bgcolor=\"#CCCCFF\">";
protected static String category_end="</th>";
protected static String cell_head="<td align=\"left\" bgcolor=\"#FFFFFF\"><font color=\"#000000\">";
protected static String cell_end="</font></td>";
private WapUtils wapUtils=new WapUtils();
protected String xsl_path="http://"+wapUtils.getHostIp()+":8080/html/wap/wap_report.xsl";
其余是几十个方法Top
21 楼ruir(瑞儿)回复于 2004-09-03 17:03:08 得分 0
upTop
22 楼ruir(瑞儿)回复于 2004-09-06 09:02:21 得分 0
upTop
23 楼bloodwar(谁敢跟我挑星际?)回复于 2004-09-06 09:57:26 得分 5
upTop
24 楼ruir(瑞儿)回复于 2004-09-06 17:05:37 得分 0
谢谢啦!Top
25 楼ruir(瑞儿)回复于 2004-09-09 09:43:40 得分 0
高手帮忙啊!Top




