繁体   English   中英

Java RESTful Web服务,找不到404

[英]Java RESTful webservice, 404 not found

我正在使用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 not found页面,该如何解决。

在非JEE6容器中使用JAX-RS要求您提供一个JAX-RS Servlet(例如Jersey),以在web.xml中进行映射。

将您的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM