Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 404关于简单弹簧休息服务_Spring_Rest_Jetty - Fatal编程技术网

Spring 404关于简单弹簧休息服务

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

我正在尝试访问以下站点上的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.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 = {