代码是这样的,查了很多资料,是说writer不能跟OutputStream一起用,但是我没有一起用
public void activateExternalPage(Object[] obj, IRequestCycle cycle) {
                HttpServletResponse req = cycle.getRequestContext().getResponse();
                this.setNode(cycle.getRequestContext().getParameter("node"));
                if (this.getNode().equals("extroot")) {
                        this.nodes = new ArrayList<TreeNode>();
                        this.nodes.add(getRoot());
                } else {
                        this.nodes = getChildNodes();
                }
                System.out.println(this.getNode());
                req.setHeader("Pragma", "No-Cache");
                req.setHeader("Cache-Control", "No-Cache");
                req.setDateHeader("Expires", 0);                Configuration cfg = new Configuration();                cfg.setServletContextForTemplateLoading(cycle.getRequestContext()
                                .getServlet().getServletContext(), "WEB-INF/templates");                PrintWriter out = null;
                try {
                        Map root = new HashMap();
                        root.put("nodes", this.getNodes());
                        Template t = cfg.getTemplate("AjaxTreeNode.ftl");
                        req.reset();
                        req.setCharacterEncoding("utf-8");
                        out = req.getWriter();
                        try {
                                t.process(root, out);
                        } catch (TemplateException e) {
                                e.printStackTrace();                        }
                        out.flush();
                } catch (IOException e) {
                        e.printStackTrace();
                } finally {
                        if (out != null) {
                                try {
                                         out.close();                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                        }
                }
        }异常:[code=INIFile]=[WARN ] 2008-05-27 09:47:57,100 method:org.apache.tapestry.engine.AbstractEngine.reportException(AbstractEngine.java:508)
Exception during post-request cleanup.
java.lang.IllegalStateException: getWriter() has already been called for this response
        at org.apache.catalina.connector.Response.getOutputStream(Response.java:579)
        at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:183)
        at org.apache.tapestry.request.ResponseOutputStream.open(ResponseOutputStream.java:184)
        at org.apache.tapestry.request.ResponseOutputStream.forceFlush(ResponseOutputStream.java:144)
        at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:945)
        at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:198)
        at org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
**********************************************************
Exception during post-request cleanup.
      Session id: null
  Client address: 127.0.0.1Exceptions:java.lang.IllegalStateException: getWriter() has already been called for this response
org.apache.catalina.connector.Response.getOutputStream(Response.java:579)
org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:183)
org.apache.tapestry.request.ResponseOutputStream.open(ResponseOutputStream.java:184)
org.apache.tapestry.request.ResponseOutputStream.forceFlush(ResponseOutputStream.java:144)
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:945)
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:198)
org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:327)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)**********************************************************[/code]