92 votes

Aucune correspondance trouvée pour la requête HTTP avec l'URI [/WEB-INF/pages/apiForm.jsp]

Mon gestionnaire transmet à internalresourceview 'apiForm", mais ensuite, j'obtiens l'erreur 404 RequestURI=/WEB-INF/pages/apiForm.jsp. Je suis sûr que apiForm.jsp situé dans /WEB-INF/pages/

13:45:02,034 DEBUG [org.springframework.web.servlet.vue.JstlView] - Transfert de ressources [/WEB-INF/pages/apiForm.jsp] dans InternalResourceView 'apiForm'
13:45:02,035 DEBUG [org.springframework.web.servlet.DispatcherServlet] - DispatcherServlet avec le nom " testapp2 déterminant de Dernière modification de la valeur pour [/WEB-INF/pages/apiForm.jsp]
13:45:02,038 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Aucun gestionnaire trouvé dans getLastModified
13:45:02,038 DEBUG [org.springframework.web.servlet.DispatcherServlet] - DispatcherServlet avec le nom "testapp2' traitement de la demande de [/WEB-INF/pages/apiForm.jsp]
13:45:02,038 WARN [org.springframework.web.servlet.PageNotFound] - Aucune correspondance trouvée pour Requête HTTP avec l'URI [/WEB-INF/pages/apiForm.jsp] dans DispatcherServlet avec le nom "testapp2'
13:45:02,045 DEBUG [org.springframework.web.servlet.DispatcherServlet] - avoir terminé avec Succès la demande
13:45:02,048 DEBUG [org.springframework.web.servlet.DispatcherServlet] - avoir terminé avec Succès la demande

c'est ainsi que ma dispatcher.xml ressembler..

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>

155voto

ptomli Points 5778

Ressemble DispatcherServlet est d'essayer de traiter la demande de apiForm.jsp, qui me donne à penser que votre web.xml servlet-mapping est en orientant les demandes pour que l'espace de DispatcherServlet.

Vous pourriez avoir quelque chose comme ça?

<servlet-mapping>
  <servlet>dispatcher</servlet>
  <url-pattern>/*</url-pattern>
</servlet-mapping>

Essayez d'appeler votre contrôleurs avec une autre extension (.faire par exemple) et de mettre à jour le servlet-mapping pour répondre

 <servlet-mapping>
  <servlet>dispatcher</servlet>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

91voto

sourcedelica Points 12533

Oui, je sais je suis en retard pour cette partie, mais il peut aider les autres.

Le conteneur de servlet choisit le mappage basé sur le plus long chemin d'accès qui correspond. Ainsi, vous pouvez mettre cette cartographie pour votre Jsp et il sera choisi au cours de la /* cartographie.

<servlet-mapping>
  <servlet-name>jsp</servlet-name>
  <url-pattern>/WEB-INF/pages/*</url-pattern>
 </servlet-mapping>

En fait pour Tomcat, c'est tout ce dont vous aurez besoin, car jsp est une servlet qui existe hors de la boîte. Pour les autres conteneurs que vous devez trouver le nom de la page JSP, servlet ou ajouter une servlet définition comme:

<servlet>
  <servlet-name>jsp</servlet-name>
  <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>

9voto

motoprog Points 46

Si je pouvais upvote sourcedelica la réponse de 100 fois, je le ferais.

Je pense que j'ai lu l'ensemble de l'internet pour comprendre comment obtenir sitemesh gérer mon html chemins sans extension + API chemins sans l'extension. J'ai été enveloppé dans une camisole de force en pensant cela, à chaque tour semblait rompre quelque chose d'autre. Puis je me suis finalement tombé sur ce post.

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>/WEB-INF/views/*</url-pattern>
 </servlet-mapping>

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>/WEB-INF/decorators/*</url-pattern>
</servlet-mapping>

Entrez ceci dans votre dispatcher-servlet.xml

<mvc:default-servlet-handler/>

8voto

Chem Points 81

Avec le Printemps 3.1 et Tomcat 7 j'ai eu erreur suivante:

org.springframework.web.servlet.DispatcherServlet noHandlerFound Aucune correspondance trouvée pour la requête HTTP avec l'URI [/baremvc/] dans DispatcherServlet avec le nom "appServlet'

Et j'ai besoin d'ajouter à web.xml de configuration suivant:

<welcome-file-list>
    <welcome-file></welcome-file>
</welcome-file-list>

Et l'application a fonctionné!

8voto

Karthik N G Points 214

Simple vérification peut être effectuée. Je suis actuellement en utilisant Spring MVC architecture avec hibernate. J'avais raté écrire @Contrôleur annotations juste au-dessus nom de la classe. C'était à l'origine du problème pour moi.

    @Controller
    public class MyClass{
    ..............
    }

Espérons que cette vérification simple de résoudre votre problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X