Spring MVC Error Handling

Dieses Thema Spring MVC Error Handling im Forum "Application Tier" wurde erstellt von Generic1, 30. Dez. 2011.

Thema: Spring MVC Error Handling Hi, Wenn ich meine Web Applikation gestartet habe, mich aber noch nicht eingeloggt hab und in einem 2. Browser-...

  1. Hi,

    Wenn ich meine Web Applikation gestartet habe, mich aber noch nicht eingeloggt hab und in einem 2. Browser- Tab eine url eingebe, die innerhalb des Login- Bereichs liegt, bekomm ich folgende Fehlermeldung unten.
    Ich war jetzt der Meinung, dass ich das mit

    Code (Java):

    @ExceptionHandler(NullPointerException.class)
        public String handleIOException(NullPointerException ex, HttpServletRequest request) {
            System.out.println("in HandleIOException: ");
            return "";
            }
     
    im Controlle lösen kann aber das hat keine Auswirkungen.
    Weiß jemand was ich machen kann um das zu lösen.
    Ich hab auch einige Filter und Interceptoren in meiner Spring- WebApp:

    [XML]
    <bean id="filterChainProxy" class="org.springframework.security.util.FilterChainProxy">
    <property name="filterInvocationDefinitionSource">
    <value>
    CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
    PATTERN_TYPE_APACHE_ANT
    /**=channelProcessingFilter,concurrentSessionFilter,httpSessionIntegrationFilter,logoutFilter,authenticationProcessingFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor
    </value>
    </property>
    </bean>
    [/XML]

    Code (Text):

    java.lang.NullPointerException
        org.apache.jsp.WEB_002dINF.jsp.termine_jsp._jspService(termine_jsp.java:267)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
        org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
        org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1031)
        org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:815)
        org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:717)
        org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
        org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:394)
        org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
        org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
        org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
        org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109)
        org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
        org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
        org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
        org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.concurrent.ConcurrentSessionFilter.doFilterHttp(ConcurrentSessionFilter.java:99)
        org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.securechannel.ChannelProcessingFilter.doFilterHttp(ChannelProcessingFilter.java:116)
        org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
        org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:185)
        org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)
     
     
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. Ok, ich habsrausgefunden, ich hab in einer JSP Scriptlets die die Exception werfen:

    Code (Java):

    if(lastusername != null) {
                int leng = lastusername.toString().length();
                if (leng <= 25)
                    username = lastusername.toString();
                else
                    username = lastusername.toString().substring(0, 25); // email- address in loggedin- form can't be longer than 24 characters
                }
            else
                throw new NullPointerException();  // das hat keine Auswirkungen auf die Error Pages
     
    Weiß jemand wie ich da bei meiner NPE in der JSP auf eine ErrorPage weiterleiten kann?

    lg
     
  4. OK, ich hab jetzt gelesen, dass es mittels JSP- Eintrag:

    [XML]
    <%@ page errorPage="/WEB-INF/error.jsp" %>
    [/XML]

    oder web.xml- Eintrag:

    [XML]
    <error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/WEB-INF/error.jsp</location>
    </error-page>
    [/XML]

    funktioniert, das hab ich auch ausprobiert und es klappt. Meine Frage wäre jetzt, klappt es auch mit Spring MVC bzw. bietet Spring MVC in diese Richtung nichts an, vielleicht weiß jemand was in diese Richtung.

    Besten Dank,
     
    Zuletzt bearbeitet: 22. Feb. 2012
  5. Kostenloses Java-Grundlagen Training im Wert von 39 €
    Schau dir jetzt hier das Tutorial an und starte richtig durch!