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
Vous devez vous connecter pour publier un commentaire.
Je vois un problème, vous êtes en charge le même fichier de contexte (
api-dispatcher-servlet.xml
) deux fois. Essentiellement typique d'un Ressort en fonction de l'application web a les deux contextes applicatifs, la première est la RACINE de contexte de l'application chargé par le ContextLoaderListener, le second est le contexte d'application Web chargé parDispatcherServlet
, dans votre cas, ces deux pointent vers l'exact même fichier de configuration qui estapi-dispatcher-servlet.xml
. Je vous recommande de le faire et voir si cela résout le comportement incohérent:.1. Créez dire un
applicationContext.xml
fichier, pour l'instant, il n'a pas besoin d'avoir toute les haricots défini, plus tard, vous pouvez mettre votre service liées haricots dans ce fichier..2. Charge ce contexte par le biais de votre ContextLoaderListener, dans votre web.xml:
.3. De charger jusqu'à api-dispatcher-servlet.xml par le biais de votre DispatcherServlet, vous avez le droit d'entrées pour ce déjà, mais il peut être préférable de faire cet explicite de cette façon:
OriginalL'auteur Biju Kunjummen
Comportement bizarre est souvent causée par le manque de cohérence dans votre compilé et les fichiers source. Je vous propose de réaliser un bon nettoyage (à supposer que vous utilisez eclipse). Arrêter le serveur, puis de réaliser le Projet -> nettoyer. Après que propre serveur. Essayez de redémarrer votre application.
Autre astuce est d'essayer de déboguer ce qui se passe quand le printemps est à la recherche pour le bon gestionnaire.
Maintenant, après le redémarrage d'Eclipse, nettoyage à nouveau le projet et d'avoir déployé de nouveau il fonctionne...
Merci, mon pote. Sa a fonctionné
OriginalL'auteur svobol13
Je suis en utilisant
@RestController
au lieu de@Controller
et j'obtiens la même erreur.Presque partout, j'ai cherché sa a déclaré que nous n'avons pas besoin d'utiliser
@ResponseBody
lorsque nous utilisons@RestController
, cependant, c'est exactement ce qui est de le faire fonctionner.Suivante est de travailler pour moi et il ne fonctionnera pas si j'enlève le @ResponseBody-
Je suis à l'aide de Spring MVC 4.x, WebInitiliazer et 100% à base de code approche.
YMMV
OriginalL'auteur Pankaj Kohli
Il m'est arrivé aussi, si votre application web est en cours d'exécution fine et n'ont rien changé et il a cessé de travailler, ensuite les étapes ci-dessous sont pour vous:
Si vous êtes en cours d'exécution d'un projet maven, essayer de faire maven propre et ensuite installer maven, puis essayez à nouveau d'exécuter.
Essayez de reconfigurer votre serveur TomCat Configurations. Vous pouvez suivre http://www.vogella.com/tutorials/EclipseWTP/article.html.
Ce qui concerne
OriginalL'auteur Yash Bansal