Restful Web服务问题 - HTTP状态404 - 请求的资源不可用

时间:2016-01-28 14:41:05

标签: java web-services jersey restful-architecture

我正在尝试一个宁静的Web服务示例,所以当我打算访问url时,我收到HTTP状态404 - 请求的资源不可用

下面是我的代码的详细信息,如果您想要任何其他信息,请告诉我

Web.xml中

<?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" 
   id="WebApp_ID" version="3.0">
   <display-name>User Management</display-name>
   <servlet>
      <servlet-name>Jersey RESTful Application</servlet-name>
      <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
         <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.tutorialspoint</param-value>
         </init-param>
      </servlet>
   <servlet-mapping>
   <servlet-name>Jersey RESTful Application</servlet-name>
      <url-pattern>/rest/*</url-pattern>
   </servlet-mapping>  
</web-app>

服务类

package com.tutorialspoint;

import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/UserService")
public class UserService {

   UserDao userDao = new UserDao();

   @GET
   @Path("/users")
   @Produces(MediaType.APPLICATION_XML)
   public List<User> getUsers(){
      return userDao.getAllUsers();
   }    
}

所有罐子

enter image description here

Tomcat webapps

enter image description here

3 个答案:

答案 0 :(得分:1)

显然,您的网址应为http://localhost:8080/UserManagement/rest/UserService/users

您也可以尝试删除<url-pattern>/rest/*</url-pattern>

中的*

答案 1 :(得分:0)

此问题已得到解决,

实际上我的web.xml不在正确的地方,这就是为什么我得到“请求的资源不可用”

答案 2 :(得分:-1)

我有同样的错误。在修改servlet时,我通过修改web.xml来纠正它。

&#13;
&#13;
 <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>org.webservice.messenger.ressources</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
&#13;
&#13;
&#13;

我的包裹被宣布:

&#13;
&#13;
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>org.webservice.messenger.messengers</param-value>
        </init-param>
  
&#13;
&#13;
&#13;

我的课程在包装上:org.webservice.messenger.ressources

我希望现在很清楚。