百思不得其解,无法使用javabean,高分求教

postform999 2005-01-13 10:43:11
我搜索了板块上关于无法使用javabean的帖子,发现还是无法解决我的问题,描述如下:
虚拟目录myapp
jsp放在myapp/下,不调用bean时,可以正常访问,servlet也可以正常访问
写了一个bean如下
package beans;
public class hello
{
public hello()
{
System.out.println("Hello!");
}

}

编译以后,把hello.class放在myapp/WEB-INF/classes/beans/ 下
然后写了一个test.jsp放在myapp/ 下,其中有
<jsp:useBean id="s" scope="page" class="beans.hello"/>
<%
s.hello();
%>

运行test.jsp,错误如下:
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 9 in the jsp file: /1.jsp

Generated servlet error:
[javac] Compiling 1 source file

C:\tools\Tomcat 5.0\work\Catalina\localhost\myapp\org\apache\jsp\_1_jsp.java:42: cannot access beans.hello



An error occurred at line: 9 in the jsp file: /1.jsp

Generated servlet error:
bad class file: D:\work\programme\JSP\WEB-INF\classes\beans\hello.class
class file contains wrong class: hello
Please remove or make sure it appears in the correct subdirectory of the classpath.
beans.hello s = null;
^
1 error

...全文
206 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
postform999 2005-01-15
  • 打赏
  • 举报
回复
发现其实错误在于tomcat发疯了!
我重起了机器,突然就可以了,晕!
bp69 2005-01-13
  • 打赏
  • 举报
回复
呵呵,帮顶
FaneAnn 2005-01-13
  • 打赏
  • 举报
回复
还有,楼主是不是ppcode的站长啊??
FaneAnn 2005-01-13
  • 打赏
  • 举报
回复
首先:
提醒一下 在jsp页面里,输出要用out.println("Hello,welcome to java");
System.out.println("Hello!");只能在控制台下看到(不过不会报错)
搂主的问题:
cannot access beans.hello:说明无法访问该文件,
呵呵,这个是Windows文件访问权限的问题
在beans文件夹上点击右键->选择"安全"-〉查看里面各个用户的权限,添加上合适的权限
最好是为该文件夹添加everyone用户,这样,所有人都可以访问这个文件夹了,你的问题
也就解决了,

还有问题的话就是RPWT啦,到时候我再看看
Bruce2008 2005-01-13
  • 打赏
  • 举报
回复
public class hello
{
public hello(){}

public void hello1()
{
System.out.println("hello");
}
}

s.hello1();


以梦为马 2005-01-13
  • 打赏
  • 举报
回复
友情up。
华生豆 2005-01-13
  • 打赏
  • 举报
回复
编译hello的时候,到beans目录所在路径进行编译,或者直接把java文件放过去,让容器自己编译~~~
joyaga 2005-01-13
  • 打赏
  • 举报
回复
明白了路径问题看看
http://community.csdn.net/Expert/topic/3718/3718003.xml?temp=.3047296
http://community.csdn.net/Expert/topic/3714/3714604.xml?temp=.3814508我都有回答
postform999 2005-01-13
  • 打赏
  • 举报
回复
总之似乎不是构造函数的问题
错误里有这么一句
class file contains wrong class: hello
Please remove or make sure it appears in the correct subdirectory of the classpath.
beans.hello s = null;

不知道暗示了什么?
不徻写代码 2005-01-13
  • 打赏
  • 举报
回复
????????
postform999 2005-01-13
  • 打赏
  • 举报
回复
哦,好像不是这个原因
我换成
public void test()
{
System.out.println("Hello!");
}
public hello(){}

然后s.test()也是同样的错误...
vgvg 2005-01-13
  • 打赏
  • 举报
回复
不过你在bean中把构造函数改成
public void hello()
{
System.out.println("Hello!");
}

你的jsp也可以通过。
joyaga 2005-01-13
  • 打赏
  • 举报
回复
恩 public hello()
{
System.out.println("Hello!");
}分明是个构造函数 怎么能这么用<%
s.hello();
%>
vgvg 2005-01-13
  • 打赏
  • 举报
回复
你的hello是一个构造函数怎么能这样访问。
<%
s.hello();
%>
去掉
其实你在执行<jsp:useBean id="s" scope="page" class="beans.hello"/>
时已经调用了hello();
因为他产生了一个对象
wtjd 2005-01-13
  • 打赏
  • 举报
回复
还有你的配置路径是正确的
wtjd 2005-01-13
  • 打赏
  • 举报
回复
package beans;
public class hello
{
public hello()
{
System.out.println("Hello!");
}

}

你的Bean这样写本来就是错误的,Bean是不用构造函数的。


skylan 2005-01-13
  • 打赏
  • 举报
回复
public class good{
public good(){ this.(10); }

public good(int s){System.out.println(s);}
}
skylan 2005-01-13
  • 打赏
  • 举报
回复
这样写

public class Hello
{
public Hello()
{
//System.out.println("Hello!");
}
public void test(){
System.out.println("Hello!");
}

}

jsp文件里面s.test();
构造函数是不能被调用的,不过一个例外是构造函数调用构造函数,通过this.
hxzg001 2005-01-13
  • 打赏
  • 举报
回复
就是楼主在jsp中调用了构造方法的原因,后来还是出错应该是你改了类却没改jsp引起的。
剑事 2005-01-13
  • 打赏
  • 举报
回复
public hello()
{
System.out.println("Hello!");
}
这是构造函数 不是方法
public void hel()
{
System.out.println("Hello!");
}

s.hel()
加载更多回复(2)

81,092

社区成员

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

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