访问restful Web服务时出现404错误

时间:2017-08-16 10:44:04

标签: java rest web-services postman

我创建了一个简单的UserManagement restful Web服务。我在其中创建了3个类。源代码如下。

用户类

package com.tutorialspoint;

import java.io.Serializable;  
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 
@XmlRootElement(name = "user") 

public class User implements Serializable{
    private static final long serialVersionUID = 1L; 
       private int id; 
       private String name; 
       private String profession;  
       public User(){} 

       public User(int id, String name, String profession){  
          this.id = id; 
          this.name = name; 
          this.profession = profession; 
       }  
       public int getId() { 
          return id; 
       }  
       @XmlElement 
       public void setId(int id) { 
          this.id = id; 
       } 
       public String getName() { 
          return name; 
       } 
       @XmlElement
       public void setName(String name) { 
          this.name = name; 
       } 
       public String getProfession() { 
          return profession; 
       } 
       @XmlElement 
       public void setProfession(String profession) { 
          this.profession = profession; 
       }

}

UserDao类

package com.tutorialspoint;

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException;  
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.util.ArrayList; 
import java.util.List;

public class UserDao {
       public List<User> getAllUsers(){ 

              List<User> userList = null; 
              try { 
                 File file = new File("Users.dat"); 
                 if (!file.exists()) { 
                    User user = new User(1, "Mahesh", "Teacher"); 
                    userList = new ArrayList<User>(); 
                    userList.add(user); 
                    saveUserList(userList); 
                 } 
                 else{ 
                    FileInputStream fis = new FileInputStream(file); 
                    ObjectInputStream ois = new ObjectInputStream(fis); 
                    userList = (List<User>) ois.readObject(); 
                    ois.close(); 
                 } 
              } catch (IOException e) { 
                 e.printStackTrace(); 
              } catch (ClassNotFoundException e) { 
                 e.printStackTrace(); 
              }   
              return userList; 
           } 
           private void saveUserList(List<User> userList){ 
              try { 
                 File file = new File("Users.dat"); 
                 FileOutputStream fos;  
                 fos = new FileOutputStream(file); 
                 ObjectOutputStream oos = new ObjectOutputStream(fos); 
                 oos.writeObject(userList); 
                 oos.close(); 
              } catch (FileNotFoundException e) { 
                 e.printStackTrace(); 
              } catch (IOException e) { 
                 e.printStackTrace(); 
              } 
           }    

}

UserService类

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(); 
       }  

}

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>

然后我创建了它的战争并在Tomcat中部署并启动了Tomcat 但是,当我通过点击网址 http://localhost:8080/UserManagement/rest/UserService/users

访问此restfull网络服务时

使用Postman会出现404错误。

请有人帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

尝试使用com.sun.jersey.spi.container.servlet.ServletContainer更改servlet类。