RequestProcessor被放在ServletContext中了,这是一个Cache的过程。

解决方案 »

  1.   

    lsm1977(lsm1977) :谢谢
    小弟功底太浅,还是不太明白。还望指教RequestProcessor这个类的实例是放在WebKeys.REQUEST_PROCESSOR这个ServletContext中了(不知道是不是这个意思)。它也应该实例化一次啊,所以调用getRequestProcessor()进行实例的时候,后台为什么不打印呢如果我在MainServlet.java中private void doProcess(HttpServletRequest request, HttpServletResponse response)方法每次客户端的请求,总是应该调用一次的吧。我在这个方法中加入
    System.err.println("hello,petstore");后台还是不打印help:)
      

  2.   

    首先,mainservlet只有在发生.do时候才调用
      

  3.   

    mefaintII(我晕) oh,
    当我调用.do也没有发生啊郁闷
      

  4.   

    这样说吧。
    MainServlet作为一个Servlet,在服务器启动的时候就会
    init,那么在初始化的时候就会println出相关信息。
    这就要看你的System.err.println写在那里了
    这是我加的调试信息,这样在启动服务器和发出请求的时候都有相关提示
        private RequestProcessor getRequestProcessor() {
             RequestProcessor rp = (RequestProcessor)context.getAttribute(WebKeys.REQUEST_PROCESSOR);
             System.out.println("context is "+context.toString());
             if ( rp == null ) {
                 rp = new RequestProcessor();             rp.init(context);
                 context.setAttribute(WebKeys.REQUEST_PROCESSOR, rp);
            }
           return rp;
        }
      

  5.   

    说得再具体一点,在系统初始化的时候
    Mainservlet的getRequestProcessor方法判断RequestProcessor rp是null因此 if ( rp == null ) {
                 rp = new RequestProcessor();             rp.init(context);
                 context.setAttribute(WebKeys.REQUEST_PROCESSOR, rp);
            }
    在之后,就只是RequestProcessor rp = (RequestProcessor)context.getAttribute(WebKeys.REQUEST_PROCESSOR);
             System.out.println("context is "+context.toString());
    了。
    初始化是有的,不是么?WebKeys.REQUEST_PROCESSOR是放一个键值,这样说不知道你清楚与否?
      

  6.   

    mefaintII(我晕) 
    非常感谢,我对MainServlet的机制有所了解了,我想可能是我编译的时候出问题了。
    我按照你所说的方法试了一下,还是没有显示出来。
    我想是不是我有几点没有弄清楚:1、System.out.println("");打印显示是不是在启动j2ee.bat -verbose的窗口中呢。2、我在编译的时候是使用调用的是<petstore.home>\src\waf\src\目录下build.bat,编译完了之后,同样使用这个命令,只是加了一个参数,即build.bat deploy。这样是不是新编译的程序就运行在服务器上了呢。我的方法错误吗。谢谢:)
      

  7.   

    这个……我没有用它自己的脚本和标准j2ee来发布
    为了研究代码,我当时的做法是,在jbuilder中建立新的项目
    然后重构petstore的waf结构,编译,打包,最后发布在weblogic 7上面的
    其中的业务模块基本上都被我剔除了,自己写了点简单的例子用j2eesdk的工具,老实说我还真不会-_-
      

  8.   

    hehewaf能用jbuilder编译,是不是改动的手术很多啊
    还是自己功底太浅,我慢慢看吧
    谢谢你们了
      

  9.   

    其实也不是,关键是,要搞清楚petstore的结构
    waf、apps、component之间的关系。
    在清楚了这些之后,设计出想类似的目录结构,也就是命名空间拉
    当然你按照ps的打包也可以。
    一切理顺了,东西就做好了,呃,对了docroot下面的一些xml还要多看
    我研读的是1.3,有web.xml mappings.xml screendefinition*.xml
    在waf和apps下面各有一套