【发布时间】:2014-03-11 17:45:25
【问题描述】:
我正在运行 Spring 4,并且正在尝试构建一个非常基本的 REST Web 服务作为概念证明。这是我的 web.xml:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app id="poc" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>ws</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ws</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/ws-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
这是我的应用程序上下文中我的 servlet 的定义:
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<bean name="/rememberName" class="com.corrisoft.air.ws.RememberNameController" init-method="init">
<property name="personService" ref="personService"/>
</bean>
以下是我从 Spring 收到的消息:
INFO: Mapped URL path [/rememberName] onto handler '/rememberName'
....
WARNING: No mapping found for HTTP request with URI [/springpoc/ws/rememberName] in DispatcherServlet with name 'ws'
其中 springpoc 是我在 tomcat 下部署的 war 文件的名称。 RememberNameController 直接扩展 HttpServlet。
谁能告诉我我的映射做错了什么?
【问题讨论】:
-
请也分享 applicationContext.xml 以便我们查看您拥有哪些视图解析器以及它们是如何配置的。
-
按您的要求添加了应用程序上下文。
-
我认为这是在抱怨您没有将其绑定到正确的 url。您可以使用类似 localhost:8080/springpoc/rememberName 的方式调用它,或者如果您进行了我在下面建议的更改,则 localhost:8080/springpoc/ws/rememberName
标签: java spring tomcat spring-mvc