[Spring] SimpleUrlHandlerMapping met een 404

Pagina: 1
Acties:
  • 129 views sinds 30-01-2008
  • Reageer

  • Bbfreak
  • Registratie: September 2002
  • Laatst online: 04-02 10:03
Informatie
Ik ben bezig met een Spring applicatie, gebruikmakend van SpringMVC.
Ik heb dit al eens vaker gedaan maar wil nu met verschillende directories gaan werken ivm Acegi.
Op de een of andere manier worden mijn URL's niet goed opgepakt. Hieronder wat code.

DispatcherServlet:
XML:
1
2
3
4
5
6
7
8
9
10
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>


action-servlet.xml:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
        <property name="prefix"><value>pages/</value></property>
        <property name="suffix"><value>.jsp</value></property>
    </bean>

    <bean id="urlMapping" 
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/admin/editUser.html">userFormController</prop>
                <prop key="/admin/users.html">userController</prop>
            </props>
        </property>
        <property name="alwaysUseFullPath">
            <value>true</value>
        </property>
    </bean>


Het Acegi stukje werkt perfect met onder andere de volgende xml code:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor">
        <property name="authenticationManager">
            <ref bean="authenticationManager"/></property>
        <property name="accessDecisionManager">
            <ref bean="accessDecisionManager"/></property>
        <property name="objectDefinitionSource">
        <value>
            CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
           PATTERN_TYPE_APACHE_ANT            
            /user/*.html=ROLE_USER
            /user/*.jsp=ROLE_USER
            /admin/*.html=ROLE_ADMIN
            /admin/*.jsp=ROLE_ADMIN
        </value>
        </property>
    </bean>


Ik roep vervolgens in een JSP de pagina <app>/admin/users.html aan.
Daar krijg ik vervolgens een 404 op. De JSP pagina die de lijst met gebruikers weer moet geven staat in de directory pages/usersList.jsp.
Mijn Spring kennis is nog te beperkt om dit op te lossen.
Als jullie meer code willen zien dan hoor ik het graag. Wie kan me helpen?

Twitter @cmeerbeek / Halo Waypoint Profile


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 00:09

Janoz

Moderator Devschuur®

!litemod

Wat gebeurt er als je acegi uitzet (Filter weglaten uit je web.xml)?

Wat komt er in het log van je applicatie server terecht?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Bbfreak
  • Registratie: September 2002
  • Laatst online: 04-02 10:03
Janoz schreef op vrijdag 02 juni 2006 @ 16:51:
Wat gebeurt er als je acegi uitzet (Filter weglaten uit je web.xml)?
Precies hetzelfde, een 404. Het moet hem haast wel in die URL Mapping zitten maar ik weet niet precies wat.
Wat komt er in het log van je applicatie server terecht?
Helemaal niks.

[edit]
Ik heb log4j properties op DEBUG gezet en heb meer info en wat blijkt? Alles ziet er goed uit :D
code:
1
Forwarded to resource [pages/userList.jsp] in InternalResourceView 'userList'
Dit is dus goed. Ik denk dat hij hier de 404 op geeft. Hoe kunnen we dit nu debuggen?
Ik gaat verder zoeken. Keep you posted.

Opgelost. Ik begrijp niet helemaal waarom maar ik heb de JSP pagina's in WEB-INF/jsp gezet en een / ervoor gezet en toen werkte het.
XML:
1
2
3
4
5
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
        <property name="prefix"><value>/WEB-INF/jsp/</value></property>
        <property name="suffix"><value>.jsp</value></property>
    </bean>

[ Voor 69% gewijzigd door Bbfreak op 06-06-2006 10:21 ]

Twitter @cmeerbeek / Halo Waypoint Profile


  • machiel
  • Registratie: Januari 2000
  • Laatst online: 11-02 18:49
Wat is de configuratie en source van je controller? Waarschijnlijk wordt je controller wel aangeroepen maar gaat het daarna fout. Bijvoorbeeld als de naam van de view die je teruggeeft niet bestaat.