为OpenSource担忧---从在weblogic下使用webwork2说起

时下OpenSource风起云涌铺天盖地,笔者也是OpenSource的支持者之一;但这两天发现的
在weblogic下使用webwork2时的问题让笔者为OpenSource的发展捏了把汗.....

opensymphony是笔者比较喜欢的开源组织之一,从学习osworkflow开始就知道它旗下有诸
多短小精悍的软件,WebWork就是其中之一;WebWork现在已经是名声远播了,在国内的使用
率也非常高,但......

上周4,使用webwork2.1.jar,在weblogic Server 6.1,发现问题,paramsInterceptor不能
用!所有使用了paramsInterceptor的地方都报NullPointerException,从
com.opensymphony.xwork.interceptor.ParametersInterceptor报出来的....
查资料....问高手.....看源码.....没有发现问题.....

周5,在高手的指导下,换成了webwork2.1.7.jar,不报NullPointerException了,但取到的
所有parameter都前加"[" 后加"]",比如username="hongsoft",它取出来后变成了
username="[hongsoft]".....郁闷.....查资料....问高手.....看源码.....没有发现问
题.....

周6,呆在家也烦,因为问题没有找到,跑公司来,查资料....问高手.....看源码.....没有
发现问题.....发现webwork的faq中有介绍怎么在weblogic6.1下使用webwork的,试...
不行,再试...还是不行,看faq中还有介绍怎么在weblogic7.0下使用webwork的,不行明天
来换成7.0吧.....

周7,换7.0,试,不行,再试,还是不行;发现2.1.1.jar到2.1.5.jar问题一样;2.1.6.jar和
2.1.7.jar问题一样,换webwork.jar,换xwork.jar,换xwork-spring.jar,换....不行...

周8,没有办法,仔细看代码吧......问题解决,faq上的介绍全部是扯淡,怀疑他们没有试就
拿上来了.唉,opensource........

附:在weblogic下使用webwork2的解决办法
修改或者extend Webwork2的总控ServletDispatcher,并配置到web.xml中:
package com.hongsoft.agile;

import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.webwork.dispatcher.ServletDispatcher;

public class AgileFlowDispatcher extends ServletDispatcher{
   
    /**
     *覆盖ServletDispatcher中的方法
     * @param request the HttpServletRequest object.
     * @return a Map of all request parameters.
     * @throws IOException if an exception occurs while retrieving the parameter map.
     */
    protected Map getParameterMap(HttpServletRequest request) throws IOException {
        Map map=new HashMap();
        Enumeration e=request.getParameterNames();
        while(e.hasMoreElements())
        {
            String key=(String)(e.nextElement());
            map.put(key,request.getParameter(key));
        }
        return map;
    }
}

你可能感兴趣的:(spring,weblogic,servlet,Webwork,OpenSource)