java.lang.InstantiationException异常如何解决???在线等!急!!!

sunnyshine 2003-10-05 10:19:24
我在调用一个JavaBean的时候出现如下的错误:
java.lang.InstantiationException: `com.kaxi.info.common.CreateRandom' has
no public zero-arg constructor
JavaBean的调用如下:
<jsp:useBean id="CreateRandomBean" scope="page" class="com.kaxi.info.common.CreateRandom" />
<%
String strRandom ="";
strRandom = CreateRandomBean.getRandomString("3456789",6);
out.print(strRandom);
%>
其中getRandomString的两个参数类型为String ,int;
请各位高手帮忙啊!!!
...全文
7842 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
youandi79 2003-10-05
  • 打赏
  • 举报
回复
构造函数定义成public的,

mymoto 2003-10-05
  • 打赏
  • 举报
回复
首先你这个getRandomString不是静态方法,你不能直接用静态方法调用,你只能先实例化一个class然后通过实例来调用他,而usebean正是起到了一个实例化一个class的作用,所以你如果用了usebean,你就可以直接拿ID实例出的对象来引用其中的函数,如果还是有错误,那就是说明他没有找到你的类路径,看看你环境变量设置是否正确
xinshou1979330 2003-10-05
  • 打赏
  • 举报
回复
关注
happyegg 2003-10-05
  • 打赏
  • 举报
回复
strRandom = CreateRandomBean.getRandomString("3456789",6);

public String getRandomString(String iSeed, int iSize){
}

你的getRandomString都不是static方法,不能这样调用的把,
应该是
<%
String strRandom ="";
CreateRandomBean cBean = new CreateRandomBean()
strRandom = cBean.getRandomString("3456789",6);
out.print(strRandom);
%>
sunnyshine 2003-10-05
  • 打赏
  • 举报
回复
JSP 引擎的操作过程:试图在属性所指定的范围内(id, scope)中寻找 bean。当找到后,在JSP 脚本中可以通过 id 来访问该 bean 了。它的类型由 type(如果被指定) 或 class (如果 type 没有被指定)其一指定的。
而在指定的范围内没有找到 bean, 又没有给出 class 或 beanName,则将返回 java.lang.InstantiationException 错误。
如果 class 被指定,而其指定的非抽象类又具有一个空参数的初始化函数,则 bean 将被实例化并添加到 scope 指定的范围中。
sunnyshine 2003-10-05
  • 打赏
  • 举报
回复
to:youandi79(嘻嘻哈哈) 我加了之后仍然不行啊!
bean如下:
package com.kaxi.info.common;
import java.util.*;
import java.lang.*;

public class CreateRandom{
String seed; //ÉèÖÃËæ»úÊýµÄÖÖ×Ó
int size; //ÉèÖòúÉúËæ»úÊýµÄ³¤¶È
CreateRandom(String seed,int size){
seed = "-1";
size = 0;
};
CreateRandom(){};
public String getSeed(){
return seed;
}
public int getSize(){
return size;
}
public void setSeed(String _seed){
seed = _seed;
}
public void setSize(int _size){
size = _size;
}
public String getRandomString(String iSeed, int iSize){
byte chs[] = iSeed.getBytes();
byte bs[] = new byte[iSize];
Random random = new Random();
int length = chs.length;
for(int i = 0; i < iSize; i++){
bs[i]=chs[random.nextInt(length)];
}
String strRandom = new String(bs);
return strRandom;
}
}
帮忙看看!!!
youandi79 2003-10-05
  • 打赏
  • 举报
回复
JavaBean里面是不是有带参数的构造函数,而没有不带参数的构造函数?

加上
public CreateRandom(){}
试试
sunnyshine 2003-10-05
  • 打赏
  • 举报
回复
谢谢各位问题解决了!!!!

81,115

社区成员

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

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