运行的时候出现页面直接出现error500, NoSuchMethodError: org.apache.struts.config.ForwardConfig.getContextRelative()错误...org.apache.struts.config.ForwardConfig.getContextRelative()Z
at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:293)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)

解决方案 »

  1.   

    没有找到这个方法,可能jar包的问题
      

  2.   

    你是不是调用了return new ActionForward("......")..
    然后.....方法没有就报错了.
      

  3.   

    .....方法 没有在struts-config 里配置找不到就报错了 ...   >_<
      

  4.   

    在struts.jar包里找一下org.apache.struts.config.ForwardConfig.class
    看有没有getContextRelative方法,如果没有就换一个包
    如果有这个方法,可能其他的包里面的类和这个有冲突,需要排查
      

  5.   

    ForwardConfig.getContextRelative()??
     
    你不会是直接用类名调用的吧,getContextRelative()不是表态的方法,
    要先实例化对象,通过对象才能调用 
      

  6.   

    兄弟所言极是,我用的是struts-1.3.8.出来错误就立即找了 在struts-core-1.3.8.jar中有此类,但是没有这个方法.原因是这个field在1.3.8被删除了.
    而有module.研究了很久,原理是服务器调用了ContextRelative这个变量.而在struts1.3.8中没有.但是我在struts.jar中倒是找到了同样的类,而且包含有
    这个方法和变量.我找了所有struts,原来在struts1.2.9以后版本就没有办法这个变量,而被module替代了.
    我该如何是好?
      

  7.   

    改成以前的版本,看来难道有点大.但是以前允许我的项目一直没有问题,最近的一个task完成后,就出现这个错误.不知道哪里出了问题?
    感觉和以前的代码都没有什么区别啊.为什么服务器突然调用contextrelative这个变量?而且我的struts-config.xml里面的代码和从前并
    没有什么差别.谁能解释ContextRelative和module倒是有什么区别,一般写了什么代码会调用ContextRelative呢?我想改一下代码,又不知道哪里调用了.
    现在连以前的代码允许都出现这个错误.
      

  8.   

    contextrelative 怎么会是个变量呢?你理解错了吧,
    还是贴代码吧
      

  9.   

    我把ForwardConfig源码都找出来看了.
    Struts 版本:1.3.8 api
    http://struts.apache.org/1.3.8/apidocs/index.htmlstruts 版本: 1.2.9 api
    http://struts.apache.org/1.2.9/api/index.html
    确实是变量.只不过是get set方面而以.不过
    这个应该forward这个struts-config.xml有关.
      

  10.   

    你的程序代码里应该不会直接调用这个struts底层的方法
    之所以这里会报错,应该是你放了2个不同版本的jar包吧只留下一个版本的jar应该就可以了
      

  11.   

    你的2个包版本不同,都存在于系统中,那么加载类的时候就不确定了
    出现这个问题应该是
    加载类的时候org.apache.struts.action.RequestProcessor加载的是1.2.9的
    org.apache.struts.config.ForwardConfig是1.3.8的
    ----
    你的编译器的builtpath中包的顺序不一样,就有可能导致加载的方式也不一样,有可能2个包的位置调换一下,就不报错了,
    为了避免这种不确定性,需要消除项目中有冲突的包
      

  12.   

    把struts1.3.8从构建路径移除,然后重新部署试验一下
      

  13.   

    但是包以前从来没有动过,一直都没有动包.以前的代码运行都很好.加上一个report之后,就出现.而且在我的local server is working. but 
    in another server is not working. I don't know how to fix it?
      

  14.   

    之前遇到过,两个版本的Struts包实现有点不一样,把老版本屏蔽掉OK