Je suis en train d'obtenir un service simple REST pour travailler avec Spring 3.0, mais garder heurtant une erreur de blocage:Spring 3.0 REST mise en œuvre DispatcherServlet ne peut pas trouver la cartographie
Aucune correspondance trouvée pour la requête HTTP avec l'URI [/ Voyage/nous/nyc/SFO/20091010/1122/true /] dans DispatcherServlet avec le nom 'dispatcher' *
Cependant, dans le fichier journal, il indique également:
org.springframework.web.servlet.mvc.annotation .Def aultAnnotationHandlerMapping - Mappé le chemin de l'URL [/ travel/us/{de}/{à}/{date}/{time}/{departure} /] sur le gestionnaire [[email protected]] *
que j'ai lu comme une indication qu'il y a une correspondance entre l'adresse URI de la classe experiment.SomeController comme gestionnaire.
Je dois être simple erreur donnant sur une dans l'un des fichiers de configuration, mais après avoir vérifié tout plusieurs fois et faire un peu de recherche sur Google, je ne l'ai pas encore trouvé une solution. J'ai déjà activé la journalisation pour les classes de printemps, mais cela n'a pas non plus révélé le problème.
Voici les fichiers de configuration pertinents et quelques extraits de code, toute aide est appeciated. La webapp est déployée sur Glassfish v2.1 et j'utilise la version M3 de Spring 3.0.0 sur JDK1.5 sous OS X.
L'objectif est que getTripDetails() renvoie une version XML des détails du ticket. . D'où l'utilisation du MarshallingView.
De web.xml:
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherSe rvlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
De répartiteur-servlet.xml:
<context:annotation-config /> <context:component-scan base-package="net.vermaas.reisadvies.server" /> <bean class="org.springframework.web.servlet.mvc.annotat ion.DefaultAnnotationHandlerMapping"> <property name="alwaysUseFullPath" value="true"/> </bean> <bean id="viewResolver" class="org.springframework.web.servlet.view.Conten tNegotiatingViewResolver"> <property name="mediaTypes"> <map> <entry key="xml" value="application/xml"/> </map> </property> <property name="viewResolvers"> <list> <bean class="org.springframework.web.servlet.view.BeanNa meViewResolver"/> <bean class="org.springframework.web.servlet.view.Intern alResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </list> </property> </bean> <bean id="marshaller" class="org.springframework.oxm.xstream.XStreamMars haller"> </bean> <bean id="content" class="org.springframework.web.servlet.view.xml.Ma rshallingView"> <property name="contentType" value="application/xml" /> <property name="marshaller" ref="marshaller"/> </bean>
La classe contrôleur: @Controller public class SomeController {
static Logger logger = Logger.getLogger(SomeController.class);
public SomeController() { }
@RequestMapping(value="/travel/us/{from}/{to}/{date}/{time}/{departure}", method=RequestMethod.GET)
public ModelAndView getTripDetails(@PathVariable String from, @PathVariable String to, @PathVariable String date, @PathVariable String time, @PathVariable boolean departure, Model model) {
logger.debug("getTripDetails"); // not logged
// Do some stuff
TripDetails td = ...
ModelAndView mav = new ModelAndView();
mav.setViewName("content");
mav.addObject("tripDetails", td);
return mav;
}
}
Toute réflexion sur ce qui ne va pas? Ou un pointeur vers un exemple de travail d'un service REST avec Spring 3.0 qui a XML en sortie?
Cordialement, Gero
Cela faisait partie de la solution. En plus de cela, j'ai aussi dû aligner le bean du bean qui est la vue avec l'URL définie. Donc: et dans le contrôleur: @RequestMapping (value = "/ content/...") –
Gero
Cette solution ne fonctionne pas sur Google App Engine au moins. – pjesi