Spring MVC Reste: Pas de cartographie trouvés pour la requête HTTP avec l'URI [/ecommerce-api/repos/caisse] dans DispatcherServlet

(probablement) résolu `ou à moins qu'il parait être. Je ne suis pas vraiment sûr où il était le problème. Pour assurer la config proposé par Biju Kunjummen, c'est de travailler et me semble plus propre. Ce que je fais maintenant, pour ne pas générer de mess est de travailler uniquement à l'intérieur de l'Éclipse, parfois nettoyage des projets et de ne jamais utiliser maven pour package & déployer (au moins pendant la journée, à la journée de la programmation, je suppose qu'avec certains robuste maven script ou Serveur CI tout fonctionne très bien aussi).

Je suis en train de configurer une API Rest avec Spring MVC. J'ai lu beaucoup de documentation, mais je suis encore en train de l'erreur dans le sujet:

Aucune correspondance trouvée pour la requête HTTP avec l'URI [/ecommerce-api/repos/caisse] dans DispatcherServlet

Le problème est exactement le même rapport (et résolu) dans d'autres questions similaires, comme celui-ci FIXE: "Aucune correspondance trouvée" Essayer de mettre en place une Détente de l'interface à l'aide de Spring-MVC

Vraiment étrange, c'est que, apparemment sans rien changer dans mon code, parfois ça fonctionne et parfois ça ne marche pas. Je suis sûr que rien ne change entre les deux moments, car parfois je suis physiquement à l'écart, puis je reviens et il s'arrête de fonctionner.

À ce moment-là, mon code est le suivant:

web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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">

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/api-dispatcher-servlet.xml
    </param-value>
</context-param>


<servlet>
    <servlet-name>api-dispatcher</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

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

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>
<listener>
    <listener-class>
        org.springframework.web.context.request.RequestContextListener
    </listener-class>
</listener>


</web-app>

api-dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8" ?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/util 
    http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="com.myapp.api.ecommerce.controller" />
    <context:annotation-config />
    <mvc:annotation-driven />

</beans:beans>

com.myapp.le commerce électronique.le contrôleur.CheckoutController

package com.myapp.api.ecommerce.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.myapp.ecommerce.service.checkout.manager.CheckoutManager;
import com.myapp.ecommerce.service.checkout.manager.CheckoutManagerImpl;
import com.myapp.ecommerce.service.checkout.model.Checkout;


@Controller
@RequestMapping("/checkout")
public class CheckoutController {


    private CheckoutManager checkoutManager = new CheckoutManagerImpl();

    @RequestMapping(method = RequestMethod.GET)
    public @ResponseBody Checkout getCheckout() {

            return checkoutManager.findById("514f2a8e20f7a78a1400001f");
    }


}

Un extrait du fichier journal du serveur d'application (VFabric mais j'ai aussi essayé avec Tomcat 7) lorsque j'essaie d' OBTENIR ecommerce-api/le reste/le paiement:

2013-09-05 22:31:37,760 DEBUG [tomcat-http--5] servlet.DispatcherServlet (DispatcherServlet.java:823) - DispatcherServlet with name 'api-dispatcher' processing GET request for [/ecommerce-api/rest/checkout]
2013-09-05 22:31:37,763 DEBUG [tomcat-http--5] handler.AbstractHandlerMethodMapping (AbstractHandlerMethodMapping.java:220) - Looking up handler method for path /checkout
2013-09-05 22:31:37,763 DEBUG [tomcat-http--5] handler.AbstractHandlerMethodMapping (AbstractHandlerMethodMapping.java:230) - Did not find handler method for [/checkout]
2013-09-05 22:31:37,764 WARN  [tomcat-http--5] servlet.DispatcherServlet (DispatcherServlet.java:1108) - No mapping found for HTTP request with URI [/ecommerce-api/rest/checkout] in DispatcherServlet with name 'api-dispatcher'
2013-09-05 22:31:37,764 DEBUG [tomcat-http--5] servlet.FrameworkServlet (FrameworkServlet.java:966) - Successfully completed request

Je ne sais vraiment pas quoi faire car il a travaillé depuis la dernière fois que j'ai arrêté mon Mac et jusqu'à ce moment, j'ai pensé à savoir comment le faire.

OriginalL'auteur Alexio Cassani | 2013-09-05