求救!一个令人抓狂的问题!

yfx1982 2004-06-10 11:07:01
小弟在做前台工作,从后台得到一个包,里面的方法经过测试无误,能正确的取到数据。但我在STRUTS中的ACTION类调用同一方法,测试时却出现这样的保错:
java.lang.NoSuchMethodError: cdsky.goodsprice.GoodsPriceBean.findInfoByGoodsId(Ljava/lang/String;)Ljava/util/Vector;

好像是数没有这个方法的错误,但应用程序测试完全没有问题,怎么回事呀。
急,请大家帮忙。
...全文
92 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yfx1982 2004-06-10
  • 打赏
  • 举报
回复
我也知道应该不是大问题,但我帮能做的都做了, 还是搞不清楚。
Philzzf 2004-06-10
  • 打赏
  • 举报
回复
感觉是小问题,你不够细心引起的
yfx1982 2004-06-10
  • 打赏
  • 举报
回复
to:nc201(Bricklayer :我连系统都重装了,还是没行。
yfx1982 2004-06-10
  • 打赏
  • 举报
回复
to nc201(Bricklayer) :如果方法参数,类的路径有问题,那么应用程序也应该抱错吧
Philzzf 2004-06-10
  • 打赏
  • 举报
回复
把项目clean,然后重新make一遍试试看
XIHSHI 2004-06-10
  • 打赏
  • 举报
回复
UP
Philzzf 2004-06-10
  • 打赏
  • 举报
回复
你的方法参数是否匹配?
类的路径是否安装正确?
yfx1982 2004-06-10
  • 打赏
  • 举报
回复
路径应该不会错的,我都是用同一个JB编的。
yfx1982 2004-06-10
  • 打赏
  • 举报
回复
ACTION类的代码如下,只是调用findInfoByGoodsId()这个方法才抱错:
package priceaction;

import org.apache.struts.action.*;
import javax.servlet.http.*;
import cdsky.columninfo.ColumnInfo;
import cdsky.baseclass.BaseClass;
import cdsky.goodsprice.GoodsPriceBean;
import java.util.*;

public class displayAction extends Action {
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
/**@todo: complete the business logic here, this is just a skeleton.*/
GoodsPriceBean goodsPrice=new GoodsPriceBean();
Vector cloumnVector=goodsPrice.getColumnInfo();
Vector recordVector = new Vector();
//获得下拉列表框的内容
recordVector = goodsPrice.selectPriceTypeInfo();
String[] priceTypeId = new String[recordVector.size()];
String[] priceTypeName = new String[recordVector.size()];
for(int i = 0;i<recordVector.size();i++){
BaseClass baseClass = (BaseClass)recordVector.elementAt(i);
priceTypeId[i] = baseClass.getBaseId();
priceTypeName[i] = baseClass.getBaseName();
}

//获得标题字段信息
if (cloumnVector == null) {
System.out.println("得到的是一个空对象!");
}
else if (cloumnVector.isEmpty()) {
System.out.println("里面没有信息!");
}
int pLength = cloumnVector.size();
System.out.println(pLength);
Integer length = new Integer(pLength);
String[] columnName = new String[pLength];
String[] columnType = new String[pLength];
String[] columnTitle = new String[pLength];
ColumnInfo columnInfo = new ColumnInfo();
Iterator iterator = cloumnVector.iterator();
int suffix = 0;
while (iterator.hasNext()) {
columnInfo = (ColumnInfo) iterator.next();
columnName[suffix] = columnInfo.getFieldName();
columnType[suffix] = columnInfo.getFieldType();
columnTitle[suffix] = columnInfo.getShowTitle();
suffix++;
}
//通过获得商品名称,生产厂家编号,厂家名称
String goodid=httpServletRequest.getParameter("goodsid");
System.out.println(goodid);
Vector vector=new Vector();
vector = goodsPrice.findInfoByGoodsId(goodid);
System.out.println("success2");
String goodsName=new String();
String factoryId = new String();
String factoryName = new String();
/*if(vector == null){
//转发到错误页面
}
else if(vector.isEmpty()){
//转发到错误页面
}*/
goodsName = (String)vector.elementAt(0);
factoryId = (String)vector.elementAt(1);
factoryName = (String)vector.elementAt(2);
System.out.println("success3");
httpServletRequest.setAttribute("goodsName",goodsName);
httpServletRequest.setAttribute("factoryId",factoryId);
httpServletRequest.setAttribute("factoryName",factoryName);

httpServletRequest.setAttribute("columnName", columnName);
httpServletRequest.setAttribute("columnType", columnType);
httpServletRequest.setAttribute("columnTitle", columnTitle);
httpServletRequest.setAttribute("priceTypeId",priceTypeId);
httpServletRequest.setAttribute("priceTypeName",priceTypeName);
httpServletRequest.setAttribute("length", length);

return(actionMapping.findForward("pricedisplay"));
}
}


应用程序代码:
package test1;

import cdsky.goodsprice.GoodsPriceBean;
import java.util.*;
public class Untitled3 {
public static void main(String[] args) {
GoodsPriceBean goodsPrice=new GoodsPriceBean();
Vector vector=new Vector();
vector = goodsPrice.findInfoByGoodsId("200");
System.out.println("success2");
String goodsName=new String();
String factoryId = new String();
String factoryName = new String();

goodsName = (String)vector.elementAt(0);
factoryId = (String)vector.elementAt(1);
factoryName = (String)vector.elementAt(2);
System.out.println("success3");
System.out.println(goodsName);
System.out.println(factoryId);

}
}
成功的打出值
hesi726 2004-06-10
  • 打赏
  • 举报
回复
应用程序使用的CLASSPATH包含的和你struts使用的一致??
详细代码!!
应用程序的代码以及action类的代码!!
Arias 2004-06-10
  • 打赏
  • 举报
回复
不知道路径是否处理好!
看看是不是你的笔误写错了或是少写了什么的!

81,092

社区成员

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

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