Spring 404关于简单弹簧休息服务
我正在尝试访问以下站点上的REST服务:Spring 404关于简单弹簧休息服务,spring,rest,jetty,Spring,Rest,Jetty,我正在尝试访问以下站点上的REST服务: http://localhost:8080/events 我得到一个404使用这个地址,我不知道为什么。我试图用GET返回JSON。 这是控制器: package com.app.eventapp; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStat
http://localhost:8080/events
我得到一个404使用这个地址,我不知道为什么。我试图用GET返回JSON。
这是控制器:
package com.app.eventapp;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import lukpra.jba.entity.Event;
import lukpra.jba.service.EventService;
@Controller
public class EventController {
@Autowired
private EventService eventService;
@RequestMapping(value = "/events" , method = RequestMethod.GET)
public String events(Model model){
model.addAttribute("events", eventService.findAll());
return "events";
}
public @ResponseBody ResponseEntity <List<Event>> getEvents(){
List<Event> events = eventService.findAll();
return new ResponseEntity<List<Event>>( events, HttpStatus.OK);
}
@RequestMapping(value = "/test", method = RequestMethod.GET)
public ResponseEntity<List<Event>> getRestEvents(){
List<Event> events = eventService.findAll();
return new ResponseEntity<List<Event>>( events, HttpStatus.OK);
}
}
现在我收到了HTTP错误406访问/test.json时出现的问题。原因:不可接受
还有hibernate在调用select时的日志,所以这是一个好迹象。我不熟悉Jetty,但我认为它的工作原理与tomcat类似。在tomcat中,需要将上下文路径重置为“/”,以便可以忽略URL中的项目名称。您可以签出此项以重置上下文路径。希望这有帮助。为了在rest中使用控制器,您不需要在控制器中提到@rest controller注释吗?@RestController是@controller+@ResponseBy,所以我不需要。您能在浏览器控制台中看到您的响应吗?因为根据您在hibernate日志中看到的注释,正在执行查询。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>event_app</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.htm</url-pattern>
<url-pattern>*.json</url-pattern>
<url-pattern>*.xml</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
<context:component-scan base-package="com.app.eventapp"></context:component-scan>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/defs/general.xml</value>
</list>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"/>
</bean>
</beans>
<url-pattern>/</url-pattern>
@RequestMapping(value="/test.json", produces = {