gpt4 book ai didi

rest - Spring 3.0 REST实现DispatcherServlet找不到映射

转载 作者:行者123 更新时间:2023-12-04 18:34:44 24 4
gpt4 key购买 nike

我试图让一个简单的 REST 服务与 Spring 3.0 一起工作,但一直遇到阻塞错误:

在名为“dispatcher”的 DispatcherServlet 中未找到具有 URI [/travel/us/nyc/sfo/20091010/1122/true/] 的 HTTP 请求的映射*

但是,在日志文件中它还指出:

org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - 将 URL 路径 [/travel/us/{from}/{to}/{date}/{time}/{departure}/] 映射到处理程序[实验.SomeController@dd9f85]*

我读到它表明存在从 URI 到 experiment.SomeController 类作为处理程序的映射。

我一定是忽略了其中一个配置文件中的一个简单错误,但是在多次检查所有内容并进行了大量谷歌搜索之后,我还没有找到解决方案。我已经为 Spring 类打开了日志记录,但这也没有揭示问题。

下面是相关的配置文件和一些代码片段,欢迎大家帮忙。 Web 应用程序部署到 Glassfish v2.1,我在 OS X 上的 JDK1.5 上使用 Spring 3.0.0 的 M3 版本。

目标是让 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>

来自 dispatcher-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 类:
@ Controller
公共(public)类 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 字符串来自,
@PathVariable 字符串,
@PathVariable 字符串日期,
@PathVariable 字符串时间,
@PathVariable boolean departure, Model model) {



logger.debug("getTripDetails");//没有记录

//做一些事情
行程详情 td = ...

ModelAndView mav = new ModelAndView();
mav.setViewName("内容");
mav.addObject("tripDetails", td);

返航;

有什么问题吗?还是指向使用 Spring 3.0 并以 XML 作为输出的 REST 服务的工作示例的指针?

问候,下吕

最佳答案

我也遇到了同样的问题,它与 Spring 3.0 一起工作的方式是将 url-pattern 中的/* 替换为/

关于rest - Spring 3.0 REST实现DispatcherServlet找不到映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/946735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com