是不是JDK版本太低了的原因呢?猜想

解决方案 »

  1.   

    可能代码写的比较难看,我把意思大体说一下,首先判断传进来的客户是代理还是客户,如果是代理再次调用此函数,如果是客户返回一ArrayList,代理下面也可能是代理,但是最终是客户。
    函数代码如下:
      public static ArrayList findOwner(String userid){
        ArrayList list = new ArrayList();
        try{
          TaCustBaseinfoBean taCustBaseinfoBean = new TaCustBaseinfoBean();
          long ll_id = taCustBaseinfoBean.findkey(userid);
          taCustBaseinfoBean = TaCustBaseinfoBean.findById(ll_id);      if(taCustBaseinfoBean.getCustlevel()==1){
            //代理
            ArrayList list2 = TaCustBaseinfoBean.findByWhere(" where supercustid='"+userid+"'");
            for(int i=0;i<list2.size();i++){
              TaCustBaseinfoBean taCB = (TaCustBaseinfoBean)list2.get(i);
              ArrayList list3 = findOwner(taCB.getCustid());
              for(int j=0;j<list3.size();j++){
                CallingNums callingNums = new CallingNums();
                callingNums = (CallingNums)list3.get(j);
                list.add(callingNums);
                //System.out.println(callingNums.getnum());
              }
            }
            return list;
          }else{
            //客户
            ArrayList list1 = TaCustCallingnumBean.findByWhere(" where custserialno ="+ll_id);
            for(int i=0;i<list1.size();i++){
              TaCustCallingnumBean taCustCallingnumBean = (TaCustCallingnumBean)list1.get(i);
              CallingNums callingNums = new CallingNums();
              callingNums.setnum(taCustCallingnumBean.getCallingnum());
              list.add(callingNums);
            }
            return list;
          }
        }
        catch (Exception e) {
          System.err.println(e.getMessage());
        }
        return list;
      }
      

  2.   

    另外,java运行环境是jbuild7,jdk应该是1.3
    jsp是weblogic7,jdk应该也是1.3
      

  3.   

    要是在JSP中调用的话就要用usebean了,然后在引用,应该没有问题的,我估计你是没有用usebean了,你自己在看看,肯定没有问题的
      

  4.   

    总有个类吧,如果是:
    public class Utils {
    ...
    public static ArrayList findOwner(String userid){
    ...}
    ...
    }在jsp里
    <%
    ...
    ArrayList al = Utils.findOwner("whatever");
    ...%>
      

  5.   

    不好意思,没说清楚,上面那个函数是在一个class里,就是在jsp中
    ArrayList al = Utils.findOwner("whatever");报错
      

  6.   

    我在class里写测试函数,可以查询出来结果,jsp报错NoSuchMethodError是在weblogic的服务器端,客户端显示Error 500--Internal Server Error
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.5.1 500 Internal Server Error
    The server encountered an unexpected condition which prevented it from fulfilling the request.
      

  7.   

    知道你的意思,最好还是把jsp文件的错误信息也贴出来,这样更好判断一些,看你程序的逻辑没有发现什么错误啊
      

  8.   

    jsp文件没有错误信息,客户端只是显示
    Error 500--Internal Server Error
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.5.1 500 Internal Server Error
    The server encountered an unexpected condition which prevented it from fulfilling the request.
    服务器断显示:
    <Jul 20, 2004 11:54:01 AM CST> <Error> <HTTP> <101017> <[ServletContext(id=46027
    53,name=billing,context-path=/billing)] Root cause of ServletException
    java.lang.NoSuchMethodError        at com.wx.operate.CallingNums.findOwner(CallingNums.java:66)
            at jsp_servlet._customer.__ta_cdr_query_results._jspService(__ta_cdr_query_results.java:131)
            at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
    (ServletStubImpl.java:1058)        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:401)        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:306)        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.run(WebAppServletContext.java:5412)        at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
    eManager.java:744)
            at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:3086)
            at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2544)
            at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
            at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
      

  9.   

    你这个是静态public方法,只需import进来直接调用就可以了,应该没有问题的才对,或许这个错误不是由句导致的,你确定就是这句出错的吗?
      

  10.   

    注释掉这句
    ArrayList al = Utils.findOwner("whatever");
    就可以正常运行;
    你看错误提示:
    Root cause of ServletException
    java.lang.NoSuchMethodError        at com.wx.operate.CallingNums.findOwner(CallingNums.java:66)
    我得class名字叫做CallingNums,好像就是这个findOwner引起的错误
      

  11.   

    自己顶
    我用try{ArrayList al = Utils.findOwner("whatever");
    }
    catch(NoSuchMethodError nsme){
       out.println(nsme.getMessage());}可以捕获到此错误,错误消息为null
    在jbuilder中执行没有此错误