As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidator [[edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList=[null] [edu.yale.its.tp.cas.client.ServiceTicketValidator casValidateUrl=[https://localhost:8443/cas-web/serviceValidate] ticket=[ST-29-fukrY39VvsLoGcf9ZboKch01keGkziqpAqO-20] service=[http%3A%2F%2Flocalhost%3A8181%2Falfresco%2Ffaces%2Fjsp%2Fdashboards%2Fcontainer.jsp] renew=false]]] at edu.yale.its.tp.cas.client.CASReceipt.getReceipt(CASReceipt.java:52) at edu.yale.its.tp.cas.client.filter.CASFilter.getAuthenticatedUser(CASFilter.java:455) at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:378) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.alfresco.module.vti.VtiContextFilter.doFilter(VtiContextFilter.java:94) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:619) Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1591) at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187) at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:181) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:975) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:123) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1096) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1107) at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:415) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:979) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234) at edu.yale.its.tp.cas.util.SecureURL.retrieve(SecureURL.java:84) at edu.yale.its.tp.cas.client.ServiceTicketValidator.validate(ServiceTicketValidator.java:212) at edu.yale.its.tp.cas.client.CASReceipt.getReceipt(CASReceipt.java:50) … 19 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:285) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:191) at sun.security.validator.Validator.validate(Validator.java:218) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:954) … 33 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:280) … 39 more
<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="path_keystore/cas.keystore" keystorePass="password" />
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Alfresco Web Client</display-name> <description>Alfresco Web Client</description> <context-param> <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/faces-config-app.xml,/WEB-INF/faces-config-beans.xml,/WEB-INF/faces-config-navigation.xml,/WEB-INF/faces-config-common.xml,/WEB-INF/faces-config-repo.xml,/WEB-INF/faces-config-wcm.xml,/WEB-INF/faces-config-custom.xml</param-value> </context-param> <context-param> <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name> <param-value>false</param-value> <description>This is an EXPERIMENTAL feature, so leave it off for now!</description> </context-param> <context-param> <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name> <param-value>false</param-value> <description>Stop MyFaces from Serializing the state to the session</description> </context-param> <!– TODO: Change this to false for production –> <context-param> <param-name>org.apache.myfaces.PRETTY_HTML</param-name> <param-value>true</param-value> <description> If true, rendered HTML code will be formatted, so that it is "human readable". i.e. additional line separators and whitespace will be written, that do not influence the HTML code. Default: "true" </description> </context-param> <context-param> <param-name>org.apache.myfaces.AUTO_SCROLL</param-name> <param-value>false</param-value> <description> If true, a javascript function will be rendered that is able to restore the former vertical scroll on every request. Convenient feature if you have pages with long lists and you do not want the browser page to always jump to the top if you trigger a link or button action that stays on the same page. Default: "false" </description> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:alfresco/application-context.xml classpath:alfresco/webscript-framework-application-context.xml classpath:alfresco/web-client-application-context.xml classpath:alfresco/web-scripts-application-context.xml classpath:alfresco/web-services-application-context.xml <!– To give final control over the tuning of the custom environment, the custom-web-context.xml file is processed last (note: custom-web-context.xml isn't part of the source tree itself). –> classpath*:alfresco/extension/custom-web-context.xml </param-value> <description>Spring config file locations</description> </context-param> <!– CAS SSO INTEGRATION –> <filter> <filter-name>CAS Required</filter-name> <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name> <param-value>https://localhost:8443/cas-web/login</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https://localhost:8443/cas-web/serviceValidate</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> <param-value>localhost:8181</param-value> </init-param> </filter> <filter> <filter-name>Authentication Filter</filter-name> <filter-class>org.alfresco.web.app.servlet.AuthenticationFilter</filter-class> <!– For Novell IChain support use the following filter –> <!– <filter-class>org.alfresco.web.app.servlet.NovellIChainsHTTPRequestAuthenticationFilter</filter-class> –> <!– For NTLM authentication support use the following filter –> <!– <filter-class>org.alfresco.web.app.servlet.NTLMAuthenticationFilter</filter-class> –> </filter> <filter> <filter-name>WebDAV Authentication Filter</filter-name> <filter-class>org.alfresco.repo.webdav.auth.AuthenticationFilter</filter-class> <!– For NTLM authentication support use the following filter –> <!– <filter-class>org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter</filter-class> –> </filter> <filter> <filter-name>Admin Authentication Filter</filter-name> <filter-class>org.alfresco.web.app.servlet.AdminAuthenticationFilter</filter-class> </filter> <filter> <filter-name>MT WebScript Basic Authentication Filter</filter-name> <filter-class>org.alfresco.web.app.servlet.MTWebScriptAuthenticationFilter</filter-class> <init-param> <param-name>authenticator</param-name> <param-value>webscripts.authenticator.basic</param-value> </init-param> </filter> <filter> <filter-name>MT WebScript WC Authentication Filter</filter-name> <filter-class>org.alfresco.web.app.servlet.MTWebScriptAuthenticationFilter</filter-class> <init-param> <param-name>authenticator</param-name> <param-value>webscripts.authenticator.webclient</param-value> </init-param> </filter> <filter> <filter-name>Vti Filter</filter-name> <filter-class>org.alfresco.module.vti.VtiContextFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Required</filter-name> <url-pattern>/faces/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Required</filter-name> <url-pattern>/template/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Required</filter-name> <url-pattern>/download/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Vti Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/faces/*</url-pattern> </filter-mapping> <!– For NTLM authentication support enable the following mapping –> <!– <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/navigate/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/command/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/download/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/template/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/n/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/c/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/t/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Authentication Filter</filter-name> <url-pattern>/d/*</url-pattern> </filter-mapping> –> <filter-mapping> <filter-name>WebDAV Authentication Filter</filter-name> <url-pattern>/webdav/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Admin Authentication Filter</filter-name> <url-pattern>/faces/jsp/admin/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Admin Authentication Filter</filter-name> <url-pattern>/faces/jsp/categories/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Admin Authentication Filter</filter-name> <url-pattern>/faces/jsp/groups/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Admin Authentication Filter</filter-name> <url-pattern>/faces/jsp/users/delete-user.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Admin Authentication Filter</filter-name> <url-pattern>/faces/jsp/users/users.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Admin Authentication Filter</filter-name> <url-pattern>/faces/jsp/admin/system-info.jsp</url-pattern> </filter-mapping> <!– for MT-context, force auth prior to WebScript binding for ST-context, pass through (or can explicitly comment out) –> <filter-mapping> <filter-name>MT WebScript Basic Authentication Filter</filter-name> <servlet-name>apiServlet</servlet-name> </filter-mapping> <filter-mapping> <filter-name>MT WebScript WC Authentication Filter</filter-name> <servlet-name>wcapiServlet</servlet-name> </filter-mapping> <listener> <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.alfresco.web.app.ContextListener</listener-class> </listener> <!– Faces 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>uploadFile</servlet-name> <servlet-class>org.alfresco.web.app.servlet.UploadFileServlet</servlet-class> </servlet> <servlet> <servlet-name>uploadContent</servlet-name> <servlet-class>org.alfresco.web.app.servlet.UploadContentServlet</servlet-class> </servlet> <servlet> <servlet-name>downloadContent</servlet-name> <servlet-class>org.alfresco.web.app.servlet.DownloadContentServlet</servlet-class> </servlet> <servlet> <servlet-name>downloadRawContent</servlet-name> <servlet-class>org.alfresco.web.app.servlet.DownloadRawContentServlet</servlet-class> </servlet> <servlet> <servlet-name>guestDownloadContent</servlet-name> <servlet-class>org.alfresco.web.app.servlet.GuestDownloadContentServlet</servlet-class> </servlet> <servlet> <servlet-name>guestTemplateContent</servlet-name> <servlet-class>org.alfresco.web.app.servlet.GuestTemplateContentServlet</servlet-class> </servlet> <servlet> <servlet-name>externalAccess</servlet-name> <servlet-class>org.alfresco.web.app.servlet.ExternalAccessServlet</servlet-class> </servlet> <servlet> <servlet-name>templateContent</servlet-name> <servlet-class>org.alfresco.web.app.servlet.TemplateContentServlet</servlet-class> </servlet> <servlet> <servlet-name>commandServlet</servlet-name> <servlet-class>org.alfresco.web.app.servlet.CommandServlet</servlet-class> </servlet> <servlet> <servlet-name>ajaxServlet</servlet-name> <servlet-class>org.alfresco.web.app.servlet.ajax.AjaxServlet</servlet-class> </servlet> <servlet> <servlet-name>axis</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> <load-on-startup>5</load-on-startup> </servlet> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>6</load-on-startup> </servlet> <servlet> <servlet-name>WebDAV</servlet-name> <servlet-class>org.alfresco.repo.webdav.WebDAVServlet</servlet-class> <init-param> <param-name>store</param-name> <param-value>workspace://SpacesStore</param-value> </init-param> <init-param> <param-name>rootPath</param-name> <param-value>/app:company_home</param-value> </init-param> <load-on-startup>5</load-on-startup> </servlet> <servlet> <servlet-name>apiServlet</servlet-name> <servlet-class>org.alfresco.web.scripts.servlet.WebScriptServlet</servlet-class> <init-param> <param-name>authenticator</param-name> <param-value>webscripts.authenticator.basic</param-value> </init-param> </servlet> <servlet> <servlet-name>wcapiServlet</servlet-name> <servlet-class>org.alfresco.web.scripts.servlet.WebScriptServlet</servlet-class> <init-param> <param-name>authenticator</param-name> <param-value>webscripts.authenticator.webclient</param-value> </init-param> </servlet> <servlet> <servlet-name>portalapiServlet</servlet-name> <servlet-class>org.alfresco.web.scripts.servlet.WebScriptServlet</servlet-class> <init-param> <param-name>authenticator</param-name> <param-value>webscripts.authenticator.webclient</param-value> </init-param> </servlet> <servlet> <servlet-name>facebookServlet</servlet-name> <servlet-class>org.alfresco.web.scripts.facebook.FacebookServlet</servlet-class> <init-param> <param-name>authenticator</param-name> <param-value>webscripts.authenticator.facebook</param-value> </init-param> </servlet> <servlet> <servlet-name>fbapiServlet</servlet-name> <servlet-class>org.alfresco.web.scripts.facebook.FacebookAPIServlet</servlet-class> <init-param> <param-name>authenticator</param-name> <param-value>webscripts.authenticator.facebook</param-value> </init-param> </servlet> <servlet> <servlet-name>proxyServlet</servlet-name> <servlet-class>org.alfresco.web.scripts.servlet.HTTPProxyServlet</servlet-class> </servlet> <servlet> <servlet-name>workflowDefinitionImageServlet</servlet-name> <servlet-class>org.alfresco.web.app.servlet.WorkflowDefinitionImageServlet</servlet-class> </servlet> <servlet> <servlet-name>JBPMDeployProcessServlet</servlet-name> <servlet-class>org.alfresco.web.app.servlet.JBPMDeployProcessServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>uploadFile</servlet-name> <url-pattern>/uploadFileServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>uploadContent</servlet-name> <url-pattern>/upload/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>downloadContent</servlet-name> <url-pattern>/download/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>downloadContent</servlet-name> <url-pattern>/d/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>downloadRawContent</servlet-name> <url-pattern>/dr</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>guestDownloadContent</servlet-name> <url-pattern>/guestDownload/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>guestDownloadContent</servlet-name> <url-pattern>/gd/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>templateContent</servlet-name> <url-pattern>/template/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>templateContent</servlet-name> <url-pattern>/t/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>guestTemplateContent</servlet-name> <url-pattern>/guestTemplate/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>guestTemplateContent</servlet-name> <url-pattern>/gt/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>externalAccess</servlet-name> <url-pattern>/navigate/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>externalAccess</servlet-name> <url-pattern>/n/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>commandServlet</servlet-name> <url-pattern>/command/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>commandServlet</servlet-name> <url-pattern>/c/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ajaxServlet</servlet-name> <url-pattern>/ajax/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>axis</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/cmis/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>WebDAV</servlet-name> <url-pattern>/webdav/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>apiServlet</servlet-name> <url-pattern>/service/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>apiServlet</servlet-name> <url-pattern>/s/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>wcapiServlet</servlet-name> <url-pattern>/wcservice/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>wcapiServlet</servlet-name> <url-pattern>/wcs/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>portalapiServlet</servlet-name> <url-pattern>/168service/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>portalapiServlet</servlet-name> <url-pattern>/168s/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>facebookServlet</servlet-name> <url-pattern>/facebook/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>facebookServlet</servlet-name> <url-pattern>/fb/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>fbapiServlet</servlet-name> <url-pattern>/fbservice/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>fbapiServlet</servlet-name> <url-pattern>/fbs/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>proxyServlet</servlet-name> <url-pattern>/proxy</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>JBPMDeployProcessServlet</servlet-name> <url-pattern>/jbpm/deployprocess</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>workflowDefinitionImageServlet</servlet-name> <url-pattern>/workflowdefinitionimage/*</url-pattern> </servlet-mapping> <session-config> <session-timeout>60</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/jsp/error.jsp</location> </error-page> </web-app>