redirect from "run class" object

23 views
Skip to first unread message

roskha

unread,
Nov 21, 2010, 10:02:38 PM11/21/10
to UrlRewrite
Hello, I have the following rule configured

<rule>
<from>^/$</from>
<run class="com.some.class.ValidationServlet"
method="service" />
</rule>

and here is the servlet method:

public void service(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException
{
String contextPath = request.getContextPath();
RentSearchCriteria crit = mapProperties(request);
boolean val = smartValidate(request, crit);
if (val)
{
StringBuffer fp = new StringBuffer();
fp.append("/" + crit.getCounty());
fp.append("/" + crit.getCity());
fp.append("/" + crit.getPropertyType());
fp.append("/" + crit.getBeds()+"-bedroom");
fp.append("/" + crit.getPriceId());


response.sendRedirect(response.encodeRedirectURL(contextPath
+fp.toString()));
return;
}

After this code is executed, the following exception is thrown:
FATAL [JspFactoryImpl] Exception initializing page context
java.lang.IllegalStateException: Cannot create a session after the
response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:
2301)
at org.apache.catalina.connector.Request.getSession(Request.java:
2075)
at
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:
833)
at
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:
844)
at
org.apache.jasper.runtime.PageContextImpl._initialize(PageContextImpl.java:
144)
at
org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:
122)
at
org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:
106)
at
org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:
62)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:48)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
373)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
336)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
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.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:
125)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:
176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:
145)
at
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:
92)


Am I allowed to call redirect from the class itself?

Thank you for your help.
Reply all
Reply to author
Forward
0 new messages