很简单的问题:关于javabeans(100分)

  • 主题发起人 主题发起人 xsw
  • 开始时间 开始时间
X

xsw

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个计数器,是用javabeans实现的。我在f盘建了个虚拟目录f:/jsp,
其他的jsp程序运行都通过了,可是带javabeans的jsp都运行出错。我将ct.jsp文件放在
f:/jsp/counter下,将class文件放在f:/jsp/web-inf/classes或者是f:/jsp/web-inf/jsp/beans下运行都不行。
出错的信息是找不到类:
Unable to compile class for JSPD:/tomcat/work/localhost_8080%2Fjsp/_0002fcounter_0002fct_0002ejspct_jsp_0.java:63: ???? counter.counter. counter?
counter.counter counter = null;
^
D:/tomcat/work/localhost_8080%2Fjsp/_0002fcounter_0002fct_0002ejspct_jsp_0.java:66: ???? counter.counter. counter?
counter= (counter.counter)
^
D:/tomcat/work/localhost_8080%2Fjsp/_0002fcounter_0002fct_0002ejspct_jsp_0.java:71: ???? counter.counter. counter?
counter = (counter.counter) Beans.instantiate(this.getClass().getClassLoader(), "counter.counter");
我也试过将ct.jsp程序放在c:/tomcat/webapps/examples/jsp 下,将counter.class文件放在
c:/tomcat/webapps/examples/WEB-INF下, 执行时,却显示找不到该页,奇怪极了。 我又在test
目录下尝试,也是显示找不到该页。
现在凡是涉及javabeans的程序都运行不了,真着急,希望各位大虾能出手相助。
 
counter.counter counter = null
将counter.class文件放在
c:/tomcat/webapps/examples/WEB-INF下
从上面的信息推测,可能是路径问题,你试一下把counter.class文件放到
c:/tomcat/webapps/examples/WEB-INF/counter下
 
我试着将ct.jsp文件放入c:/tomcat/webapps/examples/jsp/counter中,然后将counter.class
文件放入c:/tomcat/webapps/examples/WEB-INF/counter下,可是执行网页时,却显示找不到该页。
 
http://locathost:8080/admin
请检查一下,你的工作目录是否正确.
例如:/ttt(虚拟) d:/ttt(实际)
javaBean应该放在 d:/ttt/Web-inf/classes/
注意:在 d:/ttt/Web-inf下应该有web.xml
 
to xsw:把counter.class文件放到c:/tomcat/webapps/examples/WEB-INF/classes/counter
而不是c:/tomcat/webapps/examples/WEB-INF/counter
to JJams_King:捡个便宜喽:)
 
to eguy:嘿嘿,便宜可是不能乱捡的。
 
sorry!
我打漏了应该是将counter.class
文件放入c:/tomcat/webapps/examples/WEB-INF/classes/counter下,
但还是显示一样的错误。
虚拟目录的设置是正确的,执行不带javabean的jsp文件,挺正常的。
虚拟目录的web-inf下放了web.xml,还是不行。
 
我曾将tomcat中example的其中一个javabean的例子,放到我的虚拟目录下测试,
奇怪的是能正常执行。除了tomcat自带的程序能正常运行外,其它的任何程序
都显示出错信息——找不到类。
 
现在你的ct.jsp倒底放在什么地方
 
to eguy:呵呵,这下子捡不到便宜了吧
to xsw:检查一下counter.java,看看里面有没有写上
package counter;
 
或者在起动tomcat的bat文件里增加一个classpath设置,使JVM能找到counter.class
注意counter.class的包问题!!
 
to JJams_King:是啊。:(
 
counter.java里写上了package counter。
ct.jsp放在f:/jsp/counter/下,jsp是虚拟目录。counter.class放在
f:/jsp/web-inf/classes/counter/下。
如果在bat文件里增加一个classpath设置,具体的路径该如何写呢?
 
你在server.xml已经将f:/jsp作为context注册了吗。
如果注册了,按你的情况是不会有错的。仔细检查一下JSP中是否写对了
 
还有,最好不要把包名和类名取一样的名字,实在要如此,至少要用大小写区分开来
改完后,再试试,当然
 
能不能把出错信息贴出来?
 
我早就在server.xml将f:/jsp作为context注册了,而且测试过,能正常使用。
我将包名和类名改动了一下,可是结果还是一样。
出错的信息早已贴出来了呀,在上面。:)
真的很希望各位大虾能帮我找出原因,我现在做了好几个javabeans的程序,运行都无法通过,
错误信息都是一样的——找不到类。
 
真是邪门了,tomcat重新启动了吗
 
/**
* tomcat中的class放的地方是有规范的.(tomcat/conf/*.xml).因此,我建议在创建
* 一个自己的工作目录时,先将tomcat中的examples原封不动的copy到自己的工作目录下,然
* 后将目录名改为自己要起的名字.删除不要的jsp和目录.(注意不要忘记在server.xml中注册)
* 保留Web-inf目录.
*
* 可在控制台检查是否目录正确, 或用http://localhost:8080/admin检查
*
* 注意:tools.jar很重要的,别忘记加上.添加JAVA_HOME值.懒点话,修改tomcat.bat
* 将set CLASSPATH=%CLASSPATH%;%JAVA_HOME%/lib/tools.jar
* 改为set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%/lib/tools.jar
* 将tools.jar copy 到tomcat/lib/
* 同理,如果需要别的包的也可如此.
*
* 注意tomcat是将jsp编译成*.java,*.class,然后执行的.JAVA是严格区分大小写的.
* 目录名大小写不分,极容易造成500 error.例:你先运行text/dd.jsp,再运行Text/dd.jsp
* 会有错.原因:tomcat先将jsp编成java打包成package text;
运行Text/dd.jsp的话,
* JVM认为要在Text包中找,却发现包是text,报错.
*
* 关于javaBean.首先,确定java文件语法是否正确.包结构是否正确.在确定后,检查jsp中的
* 语法.是否规范.
* <jsp:useBean id="ddd" scope="page" class="counter.counter"/>
*
* tomcat将它编译出的java和class放在tomcat/work下,记的定时删除.
* class改过后将tomcat重起.
*
*
* 大部分设置问题都可如此解决.出现别的Exception,那是自己程序有问题
*/
 
把JSP贴出来吧(注意标记中的“〈”)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
692
import
I
后退
顶部