我正在使用 spring 3.2.3.RELEASE 版本和 tomcat 7。我想使用 spring 框架构建一个示例 REST API。我的 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>contextConfiguration</param-name>
<param-value>/WEB-INF/sample-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>sample-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>sample</servlet-name>
<url-pattern>/myProjects</url-pattern>
</servlet-mapping>
我的sample-servlet.xml 看起来像这样:
<beans>
<context:component-scan base-package="com.myprojects.sampleproject" />
</beans>
基本上我不需要任何 JSP 文件,因为我只想从 Controller 返回字符串(JSON 字符串)。我的 Controller 看起来像这样:
package com.myprojects.sampleproject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
*
* @author author
*/
@Controller
@RequestMapping("/user")
public class sampleprojectController {
@RequestMapping(method = RequestMethod.GET)
public String getHello() {
return "hello world";
}
}
我能够成功创建一个war文件并将其部署到tomcat上。但是当我点击 localhost:8080/myProjects/user 时,我得到 404。我正在使用 Maven 来构建和部署包。
我之前曾研究过 JAX-RS,我们可以在 netbeans 中配置来创建一个项目来编写 Web 服务,当时一切都派上了用场。但在这里我实际上试图将基于 Maven 的项目转换为在 tomcat 上运行的 Web 应用程序。为此,我尝试了这个示例,但无法启动并运行它。我错过了什么吗?
最佳答案
我猜您缺少项目的上下文路径。如果您使用的是 eclipse,您可以在项目属性 --> Web 项目设置中找到上下文路径。
此外,请确保您的控制台上没有错误。
关于java - 在 Spring Restful Web 服务中获取 404 请求的资源不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18045871/