Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法启动RESTful web服务_Java_Rest_Web Services - Fatal编程技术网

Java 无法启动RESTful web服务

Java 无法启动RESTful web服务,java,rest,web-services,Java,Rest,Web Services,我一直在学习RESTfulWeb服务,我也在关注这一点。此外,我已经实现了该教程中给出的示例代码,但是当我运行它时,我得到了404notfound错误。我在邮递员中的请求URL是http://localhost:8080/UserManagement/rest/UserService/users使用获取。因此,请告诉我代码中可能存在的问题是什么 请求和响应: 项目目录: User.java package com.tutorialspoint; import java.io.Seria

我一直在学习RESTfulWeb服务,我也在关注这一点。此外,我已经实现了该教程中给出的示例代码,但是当我运行它时,我得到了
404notfound
错误。我在邮递员中的请求URL是
http://localhost:8080/UserManagement/rest/UserService/users
使用
获取
。因此,请告诉我代码中可能存在的问题是什么

请求和响应:

项目目录:

User.java

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

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; 
   }   
} 
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(); 
      } 
   }    
}
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(); 
   }  
}
package com.tutorialspoint;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.ObjectInputStream;
导入java.io.ObjectOutputStream;
导入java.util.ArrayList;
导入java.util.List;
公共类UserDao{
公共列表getAllUsers(){
List userList=null;
试试{
File File=新文件(“Users.dat”);
如果(!file.exists()){
用户=新用户(1,“Mahesh”,“Teacher”);
userList=newarraylist();
添加(用户);
保存用户列表(userList);
} 
否则{
FileInputStream fis=新的FileInputStream(文件);
ObjectInputStream ois=新ObjectInputStream(fis);
userList=(List)ois.readObject();
ois.close();
} 
}捕获(IOE){
e、 printStackTrace();
}catch(classnotfound异常){
e、 printStackTrace();
}   
返回用户列表;
} 
私有void saveUserList(List userList){
试试{
File File=新文件(“Users.dat”);
文件输出流;
fos=新文件输出流(文件);
ObjectOutputStream oos=新的ObjectOutputStream(fos);
oos.writeObject(用户列表);
oos.close();
}catch(filenotfound异常){
e、 printStackTrace();
}捕获(IOE){
e、 printStackTrace();
} 
}    
}
UserService.java

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; 
   }   
} 
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(); 
      } 
   }    
}
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(); 
   }  
}
package com.tutorialspoint;
导入java.util.List;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.products;
导入javax.ws.rs.core.MediaType;
@路径(“/UserService”)
公共类用户服务{
UserDao UserDao=newuserdao();
@得到
@路径(“/users”)
@生成(MediaType.APPLICATION\u XML)
公共列表getUsers(){
返回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>

用户管理
Jersey RESTful应用程序
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.tutorialspoint
Jersey RESTful应用程序
/休息/*

您是如何运行应用程序的?
对于Eclipse,请按照以下步骤启动应用程序。
右键单击您的项目->运行方式->在服务器上运行

希望这对您有所帮助~

您是如何运行应用程序的?
对于Eclipse,请按照以下步骤启动应用程序。
右键单击您的项目->运行方式->在服务器上运行

希望这对您有所帮助~

您确定您的根应用程序上下文是/UserManagement? 默认情况下,TomcatWeb服务器的根应用程序上下文等于web工件的名称。因此,请确保将您的UserManagement.war复制到“tomcat\u分发\u文件夹”\webapps

我已在本地检查-您的web.xml描述符配置正确。 由于您收到HTTP 404错误,is表示您的web服务器和应用程序已启动并运行

能否尝试使用空根上下文调用端点:


或者检查web服务器的配置,并为部署的应用程序使用必要的根上下文。

是否确定根应用程序上下文为/UserManagement? 默认情况下,TomcatWeb服务器的根应用程序上下文等于web工件的名称。因此,请确保将您的UserManagement.war复制到“tomcat\u分发\u文件夹”\webapps

我已在本地检查-您的web.xml描述符配置正确。 由于您收到HTTP 404错误,is表示您的web服务器和应用程序已启动并运行

能否尝试使用空根上下文调用端点:


或者检查web服务器的配置,并为部署的应用程序使用必要的根上下文。

我遵循相同的教程,并在尝试运行postman时遇到服务器的500响应。后来我在服务器上执行了run,运行正常,但没有发现文件异常,并且对Users.dat文件的访问被拒绝。我用.txt替换了.dat文件,然后在服务器上执行了run。它在控制台中工作没有错误,最后在postman中也工作了。我建议您检查tomcat apache服务器的状态

当我尝试运行postman时,我遵循了相同的教程,并面临来自服务器的500条响应。后来我在服务器上执行了run,运行正常,但没有发现文件异常,并且对Users.dat文件的访问被拒绝。我用.txt替换了.dat文件,然后在服务器上执行了run。它在控制台中工作没有错误,最后在postman中也工作了。我建议您检查tomcat apache服务器的状态

你检查防火墙了吗?你检查防火墙了吗?嗨,我的意思是你是如何运行REST应用程序的,而不是测试它的。在我看来,Postman是一个测试web服务的工具。使用Tomcat apacheHi,我的意思是如何运行REST应用程序,而不是测试它。在我看来,Postman是一个测试web服务的工具。使用教程中的Tomcat Apache,它确实使用/UserMa访问URL