【问题标题】:REST Web Service not workingREST Web 服务不工作
【发布时间】:2017-02-19 18:38:20
【问题描述】:

我只是想创建一个简单的测试网络服务。我想在以下 url 以 XML 格式访问用户:http://localhost:8080/Online_Shopping/dispatcher/rest/hello,但是当我转到该 URL 时,什么都没有显示。

这是我的服务代码:

package com.shopping.controller;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.shopping.model.User;
@Path("/rest")
public class RESTController {

    @GET
    @Path("/hello")
    @Produces(MediaType.APPLICATION_XML)
    public User getUser() {
        return new User("paymon","123",true);
    }

}

以下代码在我的 spring-config.xml 中

<context:component-scan base-package="com.shopping.controller" />

这是在我的 web.xml 中

<servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-config.xml</param-value>
    </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/dispatcher/*</url-pattern>
    </servlet-mapping>

【问题讨论】:

  • 您的网址中的“Online_Shopping/dispatcher”来自哪里?
  • 调度服务程序
  • 为什么要使用 JAX RS 注释?

标签: spring web-services rest


【解决方案1】:

您的应用程序在端口 8080 上运行,因此要访问此 URL,您需要在 servlet 调度程序中添加“Online_Shopping”

   <servlet-mapping>
       <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>Online_Shopping/dispatcher/*</url-pattern>
    </servlet-mapping>

或者直接访问你的 api 而不使用 Online_Shopping

【讨论】:

    【解决方案2】:

    您必须改用 Spring MVC 的注解,并使用 @Controller 或 @RestController 来注解您的控制器以注册为 Spring 控制器。

    试试这个:

    @RestController
    @RequestMapping(value = "/rest")
    public class RESTController {
    
        @RequestMapping(value = "/hello", 
        method = RequestMethod.GET, 
        produces = "application/xml")
        public User getUser() {
            return new User("paymon","123",true);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多