In your web.config file search for RequestExecutorServlet and make sure it is set to RequestExecutorServletT2. Some of the following facilities may be available from build 20 onwards.
Make sure you have the following three lines in your aspire.properties. Also make sure those lines are there only once.
#**************************************************************************
#********** UpdateServlet redirection support
#**************************************************************************
request.aspire.defaultObjects.servletRequestUpdateFailure.className=\
com.ai.servlets.DUpdateServletRequestFailureResponse1
request.aspire.servletsupport.serverSideRedirector.classname=\
com.ai.servlets.AspireServersideRedirector
request.aspire.servletSupport.pageRedirector.className=\
com.ai.servlets.ClientSideRedirector
See how every redirection is qualified with a "redirectType". If not specified it will pick up the global redirect which may be clent side redirect or server side redirect. Be aware though that one should specify this serve side redirect line very occasionally. You should leave this line unspecified most of the time. This support is added when you have large amounts of data that requires to be repainted. So this is useful in form field validations that carry a lot of data.
request.LoginRequest.classname=com.ai.parts.AspireLoginPart
request.LoginRequest.redirectURL=/{aspireContext}/display?url=welcomePageURL&username={username}
request.LoginRequest.redirectURL.redirectType=serverside
request.LoginRequest.failureRedirectURL.INVALID_PASSWORD=\
/{aspireContext}/display?url=LoginPageURL&pageStatus=invalid-login&vs={viewState}
request.LoginRequest.failureRedirectURL.INVALID_PASSWORD.redirectType=serverside
1. Use the root cause code to locate the redirect url
2. Use a matching pattern in the exception message to identify the redirect url
3. Use the failure redirect url off of the request name irrespective of the exception
4. Use the global failure response page if this is not available
request.requestname.failureRedirectURL.rootcausecode=(your redirection)
request.requestname.failureRedirectURL.matchStrings=string1|string2|string3
request.requestname.failureRedirectURL.string1=(your redirect url)
request.requestname.failureRedirectURL.string2=(your redirect url)
request.requestname.failureRedirectURL=(your redirect url)
When an exception is thrown, this string indicates the url to which the request should be redirected to. If the root cause message is as follows:
"DUPLICATE_EMPLOYEE_NAME:Hey this is not allowed my good fried"
Then the root casue code is
DUPLICATE_EMPLOYEE_NAME
You can use this for redirection as follows
request.requestName.failureRedirectURL.DUPLICATE_EMPLOYEE_NAME=(your redirect url)
This facility is quite handy when you are using stored procedures to alter the redirection path.
1. aspire.return_code always indicates "failure"
2. aspire.request_name points to the name of the request that came in
3. aspire.error_message points to the message in the exception
4. aspire.root_cause points to the root cause string of the exception
5. aspire.root_cause_code points to the root cause code if available
Starting build 19.x you can do this
request.requestName.failureRedirectURL=(your redirect url)
request.requestName.failureRedirectURL.redirectType=(default|serverside:default)
This is quite handy for field validations. When the redirect type is serverside, the entire input value set is preserved.
failureRedirectURL
redirectType
redirectURL
matchStrings
com.ai.servlets.RequestExecutorServletT2
com.ai.servlets.RequestExecutorServletT1
com.ai.servlets.IUpdateServletRequestFailureResponse
com.ai.servlets.DUpdateServletRequestFailureResponse
com.ai.servlets.DUpdateServletRequestFailureResponse1
com.ai.common.IExceptionAnalyzer
com.ai.common.DExceptionAnalyzer
com.ai.servlets.RequestExecutorServletT2
com.ai.servlets.DUpdateServletRequestFailureResponse1