Java RESTful Web 服务,404 未找到

标签 java web-services rest

我正在使用 jersey 2.0 创建 RESTful Web 服务,这是我的 web.xml 文件:

<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">
<servlet>
    <servlet-name>Rest</servlet-name>
    <servlet-class>
        com.shop.domain.ShoppingApplication
    </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Rest</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>

我的 ShoppingApplication 类:

public class ShoppingApplication extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> s = new HashSet<Class<?>>();
        s.add(CustomerResource.class);
        return s;
    }   
}

还有我的 CustomerResource 类:

@Path("/customers")
public class CustomerResource{

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getCustomer(){
        return "Hello";
    }
}

当使用 localhost:8080/customers 运行时,我得到了 404 未找到页面,我应该如何修复它。

最佳答案

在非 JEE6 容器内使用 JAX-RS 需要您提供要在 web.xml 中映射的 JAX-RS Servlet(如 Jersey)

将您的 web.xml 更改为

<web-app>
    <servlet>
        <servlet-name>MyApplication</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.shop.domain.ShoppingApplication</param-value>
        </init-param>
    </servlet>
    ...
    <servlet-mapping>
        <servlet-name>MyApplication</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    ...
</web-app>

参见https://jersey.java.net/documentation/latest/deployment.html#deployment.servlet.2对于文档。

关于Java RESTful Web 服务,404 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26443547/

相关文章:

asp.net - REST 服务的成员资格/授权

json - 需要从 Grails 3.1.5 应用程序同时提供 GSP 和 JSON

java - Android:如何创建空 Realm 对象?

java - 如何生成与 java 联合的 graphql 模式?

java - 如何在 java WebMethod 中获取 POST/GET 参数?

javascript - 使用 Promise 链接 Web 服务调用并不总是有效

java - 如何将LinkedHashMap值存储到double类型数组中

java - 如何在java中的控制台中横向打印内容?

html - "Encrypted"谷歌搜索的html代码?

c# - Azure 通知中心格式标记负载 REST API