Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Session is expired before the session timeout in web.xml

981207May 21 2014 — edited May 23 2014

I have a strange problem that my session is getting expired before the session time out set in web.xml.

In application module-->configuration-->AM local-->pooling and scalablity--->Idle instance timeout-->10800 sec is set.When i searched the blog ,i read always web.xml takes the precedence over other time out settings.Still how come the session is getting broken before the session timeout of (3 hrs).We kept our application idle for one hour and tested.We are getting null pointer exception in

filterChain.doFilter(request, response); of doFilter() in


sessionExpiryFilter.java method.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException,
ServletException {

if (request instanceof HttpServletRequest) {
HttpServletRequest httpServletRequest = (HttpServletRequest)request;
HttpServletResponse httpServletResponse = (HttpServletResponse)response;
HttpSession session = httpServletRequest.getSession(false);
if (session == null) {
URL requestUrl = new URL(httpServletRequest.getRequestURL().toString());
String targetUrl = URLHelper.getApplicationPart(requestUrl) + "faces/login.jsp";
session = httpServletRequest.getSession(true);
httpServletResponse.sendRedirect(targetUrl);
}

}
filterChain.doFilter(request, response);  ---->NPE exception after one hour
}

web.xml

<?xml version = '1.0' encoding = 'windows-1252'?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

         version="2.5">

    <context-param>

        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>

        <param-value>client</param-value>

    </context-param>

    <context-param>

        <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>

        <param-value>false</param-value>

    </context-param>

    <context-param>

        <description>If this parameter is true, there will be an automatic check of the modification date of your JSPs, and saved state will be discarded when JSP's change. It will also automatically check if your skinning css files have changed without you having to restart the server. This makes development easier, but adds overhead. For this reason this parameter should be set to false when your application is deployed.</description>

        <param-name>org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION</param-name>

        <param-value>false</param-value>

    </context-param>

    <context-param>

        <description>Whether the 'Generated by...' comment at the bottom of ADF Faces HTML pages should contain version number information.</description>

        <param-name>oracle.adf.view.rich.versionString.HIDDEN</param-name>

        <param-value>false</param-value>

    </context-param>

    <context-param>

        <description>Security precaution to prevent clickjacking: bust frames if the ancestor window domain(protocol, host, and port) and the frame domain are different. Another options for this parameter are always and never.</description>

        <param-name>org.apache.myfaces.trinidad.security.FRAME_BUSTING</param-name>

        <param-value>differentOrigin</param-value>

    </context-param>

    <context-param>

        <param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE</param-name>

        <param-value>20971520</param-value>

    </context-param>

     <!--Added for session expiry -->

    <context-param>

    <param-name>oracle.adf.view.rich.sessionHandling.WARNING_BEFORE_TIMEOUT</param-name>

    <param-value>120</param-value>

    </context-param>

    <!--Ends--->

        <context-param>

        <param-name>oracle.adf.view.rich.HIDE_UNSUPPORTED_BROWSER_ALERTS</param-name>

        <param-value>IECompatibilityModes</param-value>

    </context-param>

     <context-param>

        <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name>

        <param-value>*.jsf;*.xhtml</param-value>

    </context-param>

    <context-param>

        <param-name>javax.faces.FACELETS_SKIP_XML_INSTRUCTIONS</param-name>

        <param-value>true</param-value>

    </context-param>

    <context-param>

        <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>

        <param-value>true</param-value>

    </context-param>

    <context-param>

        <param-name>javax.faces.FACELETS_DECORATORS</param-name>

        <param-value>oracle.adfinternal.view.faces.facelets.rich.AdfTagDecorator</param-value>

    </context-param>

    <context-param>

        <param-name>javax.faces.FACELETS_RESOURCE_RESOLVER</param-name>

        <param-value>oracle.adfinternal.view.faces.facelets.rich.AdfFaceletsResourceResolver</param-value>

    </context-param>

    <filter>

        <filter-name>JpsFilter</filter-name>

        <filter-class>oracle.security.jps.ee.http.JpsFilter</filter-class>

        <init-param>

            <param-name>enable.anonymous</param-name>

            <param-value>true</param-value>

        </init-param>

    </filter>

    <filter>

        <filter-name>trinidad</filter-name>

        <filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>

    </filter>

    <filter>

        <filter-name>adfBindings</filter-name>

        <filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>

    </filter>

    <!--Added for session expiry-->

    <filter>

        <filter-name>AppSessionExpiryFilter</filter-name>

        <filter-class>com.bean.common.SessionExpiryFilter</filter-class>

      <!-- <init-param>

        <param-name>AppSessionTimeoutRedirect</param-name>   

       <param-value>/faces/login.jsp</param-value>

    </init-param>-->

    </filter>

    <filter-mapping>

        <filter-name>AppSessionExpiryFilter</filter-name>

        <servlet-name>Faces Servlet</servlet-name>

    </filter-mapping>

    <!--Ends--->

    <filter-mapping>

        <filter-name>JpsFilter</filter-name>

        <url-pattern>/*</url-pattern>

        <dispatcher>FORWARD</dispatcher>

        <dispatcher>REQUEST</dispatcher>

        <dispatcher>INCLUDE</dispatcher>

    </filter-mapping>

    <filter-mapping>

        <filter-name>trinidad</filter-name>

        <servlet-name>Faces Servlet</servlet-name>

        <dispatcher>FORWARD</dispatcher>

        <dispatcher>REQUEST</dispatcher>

        <dispatcher>ERROR</dispatcher>

    </filter-mapping>

    <filter-mapping>

        <filter-name>adfBindings</filter-name>

        <servlet-name>Faces Servlet</servlet-name>

        <dispatcher>FORWARD</dispatcher>

        <dispatcher>REQUEST</dispatcher>

    </filter-mapping>

    <filter-mapping>

        <filter-name>adfBindings</filter-name>

        <servlet-name>HelpManagementPdfServlet</servlet-name>

        <dispatcher>FORWARD</dispatcher>

        <dispatcher>REQUEST</dispatcher>

    </filter-mapping>

    <listener>

        <listener-class>oracle.adf.mbean.share.config.ADFConfigLifeCycleCallBack</listener-class>

    </listener>

    <listener>

        <listener-class>oracle.adf.mbean.share.connection.ADFConnectionLifeCycleCallBack</listener-class>

    </listener>

    <listener>

        <listener-class>oracle.bc4j.mbean.BC4JConfigLifeCycleCallBack</listener-class>

    </listener>

    <servlet>

        <servlet-name>AutoLogin</servlet-name>

        <servlet-class>com.bean.common.AutoLogin</servlet-class>

        <load-on-startup>0</load-on-startup>

    </servlet>

    <servlet>

        <servlet-name>Faces Servlet</servlet-name>

        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet>

        <servlet-name>resources</servlet-name>

        <servlet-class>org.apache.myfaces.trinidad.webapp.ResourceServlet</servlet-class>

    </servlet>

    <servlet>

        <servlet-name>BIGRAPHSERVLET</servlet-name>

        <servlet-class>oracle.adf.view.faces.bi.webapp.GraphServlet</servlet-class>

    </servlet>

    <servlet>

        <servlet-name>BIGAUGESERVLET</servlet-name>

        <servlet-class>oracle.adf.view.faces.bi.webapp.GaugeServlet</servlet-class>

    </servlet>

    <servlet>

        <servlet-name>MapProxyServlet</servlet-name>

        <servlet-class>oracle.adf.view.faces.bi.webapp.MapProxyServlet</servlet-class>

    </servlet>

    <servlet>

        <servlet-name>HelpManagementPdfServlet</servlet-name>

        <servlet-class>com.bean.common.HelpManagementPdfServlet</servlet-class>

    </servlet>

    <servlet>

        <servlet-name>LogoutServlet</servlet-name>

        <servlet-class>com.bean.common.LogoutServlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>Faces Servlet</servlet-name>

        <url-pattern>/faces/*</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>resources</servlet-name>

        <url-pattern>/adf/*</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>resources</servlet-name>

        <url-pattern>/afr/*</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>BIGRAPHSERVLET</servlet-name>

        <url-pattern>/servlet/GraphServlet/*</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>BIGAUGESERVLET</servlet-name>

        <url-pattern>/servlet/GaugeServlet/*</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>MapProxyServlet</servlet-name>

        <url-pattern>/mapproxy/*</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>resources</servlet-name>

        <url-pattern>/bi/*</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>AutoLogin</servlet-name>

        <url-pattern>/autoLogin</url-pattern>

        <url-pattern>/faces/autoLogin</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>HelpManagementPdfServlet</servlet-name>

        <url-pattern>/mainPage/pdf</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>LogoutServlet</servlet-name>

        <url-pattern>/logoutservlet</url-pattern>

    </servlet-mapping>

    <session-config>

        <session-timeout>180</session-timeout>

    </session-config>

    <mime-mapping>

        <extension>swf</extension>

        <mime-type>application/x-shockwave-flash</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>amf</extension>

        <mime-type>application/x-amf</mime-type>

    </mime-mapping>

    <jsp-config>

        <jsp-property-group>

            <url-pattern>*.jsff</url-pattern>

            <is-xml>true</is-xml>

        </jsp-property-group>

    </jsp-config>

</web-app>

Please let me any settings needs to be changed?Kindly help

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 20 2014
Added on May 21 2014
4 comments
3,153 views