Exception 尝试转发到Tapestry 3中的不同url时出现异常

Exception 尝试转发到Tapestry 3中的不同url时出现异常,exception,tapestry,forwarding,Exception,Tapestry,Forwarding,我有这个tapestry应用程序,我有一个html和一个后端java类,html部分: <html> <head> <title>Starter Page</title> </head> <body> <span jwcid="@Insert" value="ognl: errorMessage" /> <form jwcid="@Form" method="POST" listen

我有这个tapestry应用程序,我有一个html和一个后端java类,html部分:

<html>
<head>
    <title>Starter Page</title>
</head>
<body>
    <span jwcid="@Insert" value="ognl: errorMessage" />
    <form jwcid="@Form" method="POST" listener="ognl:listeners.filterContracts">
        <table style="width: 100%;" border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td>
                    <label jwcid='@vitech:Label' element="span" labelOverride="Choose Criteria"/>
                </td>
                <td>
                    <select jwcid="criteriaSelect@Select">
                        <foreach jwcid="@Foreach" source="ognl: criterias" value="ognl:currentCriteria" index="ognl:currentCriteriaIndex">
                            <option jwcid="@Option" selected="ognl:selection[currentCriteriaIndex]" label="ognl:currentCriteria"/>
                        </foreach>
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    <label jwcid='@vitech:Label' element="span" labelOverride="Criteria Value"/>
                </td>
                <td>
                    <input jwcid="@TextField" value='ognl: criteriaValue' />
                </td>
            </tr>
            <tr>
                <td>
                    <label jwcid='@vitech:Label' element="span" labelOverride="Username"/>
                </td>
                <td>
                    <input jwcid="@TextField" value='ognl: username' />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="submit" jwcid="getcontract@Submit" label="ognl: 'Get Contracts'" />
                </td>
            </tr>
        </table>
    </form>
</body>
java.io.IOException:已关闭 org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:140) org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:86) org.apache.tapestry.request.ResponseOutputStream.innerWrite(ResponseOutputStream.java:246) org.apache.tapestry.request.ResponseOutputStream.open(ResponseOutputStream.java:186) org.apache.tapestry.request.ResponseOutputStream.forceFlush(ResponseOutputStream.java:144) org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:928) org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:197) com.vitechinc.core.VitechApplicationServlet.doService(VitechApplicationServlet.java:310) org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:326) javaservlet.http.HttpServlet.service(HttpServlet.java:727) javaservlet.http.HttpServlet.service(HttpServlet.java:820) org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527) ServletHandler$CachedChain.doFilter(ServletHandler.java:1216) org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) com.vitechinc.v3.core.connectionmanagement.ConnectionSettingsFilter.doFilter(ConnectionSettingsFilter.java:79) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:421) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493) org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930) org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358) org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) org.eclipse.jetty.server.server.handle(server.java:351) org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594) org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1058) org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:764) org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217) org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:489) org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) run(Thread.java:662)


我猜倒带周期中出现了一些问题

我不确定您是否有选择权,但是Tapestry 5将震撼您的世界。如果工作中有人坚持使用Tapestry 3,你必须说服他不要这样做。
public void filterContracts(IRequestCycle cycle) {
    if(cycle.isRewinding()) {
        try {
            errorMessage = "";
            String selectedCriteriaString = cycle.getRequestContext().getRequest().getParameter("criteriaSelect");
            MetlinkVisit metlinkVisit = (MetlinkVisit)getEmployerVisit();
            int selectedCriteria = Integer.parseInt(selectedCriteriaString);
            List<MemberContract> allMemberContractsWithEmployer = loadEmployerBySecurityUser(username);
            if(allMemberContractsWithEmployer != null && allMemberContractsWithEmployer.size() > 0) {
                FilterMembersContractsByCriteria filter;
                List<MemberContract> filteredMembersContractsWithEmployer;
                switch(selectedCriteria) {
                    case 0:
                        filter = new FilterMembersContractsBySSN();
                        break;
                    case 1:
                        filter = new FilterMembersContractsByLastName();
                        break;
                    case 2:
                        filter = new FilterMembersContractsByGAB();
                        break;
                    case 3:
                        filter = new FilterMembersContractsByCertificate();
                        break;
                    default:
                        filter = new FilterMembersContractsBySSN();
                        break;
                }
                filteredMembersContractsWithEmployer = filter.filterAllMembersContractsWithEmployerUsingCriteria(allMemberContractsWithEmployer, criteriaValue);
                if(filteredMembersContractsWithEmployer != null && filteredMembersContractsWithEmployer.size() > 0) {
                    metlinkVisit.setFilteredContracts(filteredMembersContractsWithEmployer);
                    HttpServletRequest request = cycle.getRequestContext().getRequest();
                    HttpServletResponse response = cycle.getRequestContext().getResponse();
                    String uri = request.getRequestURI();
                    String url = uri + "?un=" + username + "&service=external/Metlink:SummaryPage";
                    request.getRequestDispatcher(url).forward(request, response);
                } else {
                    errorMessage = "Criteria doesn't match any record, try different criteria";
                }
            }
        }catch (Exception e) {
            errorMessage = e.getMessage();
        }
    }
}
Exceptions: