나는 스프링 3.0와 함께 작동하지만, 차단 오류에 부딪 치는 유지하기 위해 간단한 REST 서비스를 얻으려고 찾을 수 없습니다 :봄 3.0 REST 구현 DispatcherServlet에 매핑
에 매핑이 URI와 HTTP 요청을 찾을 수 없습니다를 [/ 여행/우리/뉴욕/SFO// 1122 20091010/참 /] 이름을 '디스'과의 DispatcherServlet에 *은
그러나 로그 파일에 또한 상태 :
org.springframework.web.servlet.mvc.annotation을 .Def aultAnnotationHandlerMapping - 핸들러에 [/ travel/us/{from}/{to}/{date}/{time}/{departure} /] 매핑 된 URL 경로 *
나는 URI에서 experiment.SomeController 클래스 핸들러로 매핑된다는 표시로 읽습니다.
내가 설정 파일 중 하나에서 간단한 오류를 간과해야하지만 여러 번 확인하고 꽤 많은 Google 검색을 한 후에 아직 해결책을 찾지 못했습니다. Spring 클래스 로깅을 이미 설정했지만 문제도 밝혀지지 않았습니다.
다음은 관련 설정 파일과 일부 코드 단편입니다. 도움말은 알 수 있습니다. webapp가 Glassfish v2.1에 배포되었고 OS 3.0에서 JDK1.5의 Spring 3.0.0 빌드를 사용하고 있습니다.
목표는 getTripDetails()가 tripdetails의 XML 버전을 반환하도록하는 것입니다. . 따라서 MarshallingView의 사용. 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>
디스패처-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>
컨트롤러 클래스 : 무엇이 잘못되었는지에 @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;
}
}
어떤 생각? 또는 XML이 출력으로있는 Spring 3.0을 사용하는 REST 서비스의 실제 예제에 대한 포인터?
감사합니다, 게로
이것은 솔루션의 일부입니다. 그 외에도 뷰인 bean의 bean을 URL로 정렬해야했습니다. 따라서 : 컨트롤러에서 : @RequestMapping (value = "/ content/...") –
Gero
이 솔루션은 Google App Engine에서 적어도 작동하지 않습니다. – pjesi