The below code is working fine in struts 2.3 v however it’s not working with struts 6. x
The below is the error stacktrace of struts 6. x
java.lang.IllegalStateException: The following session is not valid! YMi5UjHTjrc9qs4JJEPPskp
at com.ibm.ws.session.http.HttpSessionImpl.getAttribute(HttpSessionImpl.java:191) ~[na:na]
at com.ibm.ws.session.SessionData.getSessionValue(SessionData.java:307) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.session.SessionData.getAttribute(SessionData.java:163) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.session.HttpSessionFacade.getAttribute(HttpSessionFacade.java:139) ~[com.ibm.ws.webcontainer.jar:na]
at org.apache.struts2.dispatcher.SessionMap.get(SessionMap.java:144) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:879) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.components.UIBean.end(UIBean.java:550) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:40) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at com.ibm._jsp._index._jspx_meth_s_hidden_0(_index.java:358) ~[na:na]
at com.ibm._jsp._index._jspService(_index.java:166) ~[na:na]
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) ~[com.ibm.ws.webcontainer.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.j2ee.servlet.jar:na]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1240) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:220) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:143) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:78) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:979) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1119) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1408) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:553) ~[com.ibm.ws.webcontainer.jar:na]
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1045) ~[com.ibm.ws.webcontainer.jar:na]
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:569) ~[com.ibm.ws.webcontainer.jar:na]
at org.apache.tiles.request.jsp.JspRequest.doInclude(JspRequest.java:116) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.request.AbstractViewRequest.dispatch(AbstractViewRequest.java:42) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:43) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.request.render.ChainedDelegateRenderer.render(ChainedDelegateRenderer.java:63) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.core.impl.BasicTilesContainer.render(BasicTilesContainer.java:253) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.api.TilesContainerWrapper.render(TilesContainerWrapper.java:95) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:193) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.template.InsertAttributeModel.execute(InsertAttributeModel.java:137) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.web.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:296) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at com.ibm._jsp._default._jspx_meth_tiles_insertAttribute_2(_default.java:172) ~[na:na]
at com.ibm._jsp._default._jspService(_default.java:107) ~[na:na]
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) ~[com.ibm.ws.webcontainer.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.j2ee.servlet.jar:na]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1240) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:220) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:143) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:78) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:979) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1119) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1408) ~[com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:198) ~[com.ibm.ws.webcontainer.jar:na]
at org.apache.tiles.request.servlet.ServletRequest.forward(ServletRequest.java:274) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.request.servlet.ServletRequest.doForward(ServletRequest.java:235) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.request.AbstractClientRequest.dispatch(AbstractClientRequest.java:51) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:43) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.core.impl.BasicTilesContainer.render(BasicTilesContainer.java:253) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.core.impl.BasicTilesContainer.render(BasicTilesContainer.java:393) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.core.impl.BasicTilesContainer.render(BasicTilesContainer.java:230) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.api.TilesContainerWrapper.render(TilesContainerWrapper.java:90) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.tiles.core.impl.mgmt.CachingTilesContainer.render(CachingTilesContainer.java:110) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:140) ~[struts2-tiles-plugin-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:206) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:377) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:284) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:152) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99) ~[struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.qwer.idas.weba.interceptor.MyInterceptor.intercept(MyInterceptor.java:77) ~[classes/:na]
at com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253) [struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48) [struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:651) [struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79) [struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.handleRequest(StrutsPrepareAndExecuteFilter.java:157) [struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.tryHandleRequest(StrutsPrepareAndExecuteFilter.java:140) [struts2-core-6.3.0.2.jar:6.3.0.2]
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:128) [struts2-core-6.3.0.2.jar:6.3.0.2]
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:197) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:90) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:979) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1119) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4238) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.webapp.WebAppImpl.handleRequest(WebAppImpl.java:2210) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1033) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:382) [com.ibm.ws.webcontainer.jar:na]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465) [com.ibm.ws.runtime.jar:na]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:532) [com.ibm.ws.runtime.jar:na]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:318) [com.ibm.ws.runtime.jar:na]
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) [com.ibm.ws.runtime.jar:na]
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) [com.ibm.ws.runtime.jar:na]
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) [com.ibm.ws.runtime.jar:na]
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) [com.ibm.ws.runtime.jar:na]
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) [com.ibm.ws.runtime.jar:na]
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) [com.ibm.ws.runtime.jar:na]
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) [com.ibm.ws.runtime.jar:na]
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) [com.ibm.ws.runtime.jar:na]
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1909) [com.ibm.ws.runtime.jar:na]
Error at while calling return invocation.invoke();
in interceptor method is
public final class MyInterceptor extends AbstractInterceptor {
private static Logger logger = GenericLogger.getGenericLogger().getLoggerInstance();
@Override
public String intercept(ActionInvocation invocation) throws Exception
{
long startTime = System.currentTimeMillis();
HttpServletRequest request = (HttpServletRequest) invocation.getInvocationContext().get(StrutsStatics.HTTP_REQUEST);
HttpServletResponse response = (HttpServletResponse) invocation.getInvocationContext().get(StrutsStatics.HTTP_RESPONSE);
String actionName = WebContext.getActionName();
try
{
RootAction action = (RootAction)invocation.getAction();
if(!validateRequestMethoType(action)){
return IDConstants.INVALID_HTTP_METHOD;
}
initializeLogging(request, actionName);
logger.info("Request Start|action={}|remote_ip={}", actionName, request.getRemoteAddr());
preventBrowserCaching(response);
enableFrameBusting(response);
// make sure a default SessionData exists if one isn't in the session
SessionData sessionData = WebContext.getSessionData();
if(sessionData == null) {
WebContext.setSessionData(new SessionData());
}
if(!validateNonceToken(action, request)) {
return IDConstants.INVALID_NONCE;
}
if(!validateSecurity(action)) {
return IDConstants.NOT_LOGGED_IN;
}
return invocation.invoke();
}
catch(Exception e)
{
logger.error(String.format("Action Error|action=%s", actionName), e);
throw e;
}
finally
{
logger.info("Request End|action={}|time={}", actionName, System.currentTimeMillis() - startTime);
MDC.clear();
}
}