2017-10-11 19 views
0

私はRESTfulウェブサービスを学習しており、そのためにはthis tutorialに従っています。さらに、私はそのチュートリアルで与えられたサンプルコードを実装しましたが、Postmanまで実行すると、404 Not Foundエラーが発生しています。郵便番号の私のリクエストURLはhttp://localhost:8080/UserManagement/rest/UserService/usersで、GETです。したがって、私のコードで何が問題になるのか教えてください。RESTfulウェブサービスを開始できません

リクエストとレスポンス:

enter image description here

プロジェクトディレクトリ:

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

UserDao.java

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.java

の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> 
+0

ファイアウォールをチェックしましたか? –

答えて

0

どのようにあなたのアプリケーションシートを実行しませんでしたn?
Eclipseの場合、次の手順に従ってアプリケーションを起動してください。 〜

+0

私はPostmanソフトウェアを使用しています - > https://www.getpostman.com/ – Agha

+0

こんにちは、私はあなたが** RUN ** RESTアプリケーションを実行しましたか?** TEST **ではありませんでした。私の意見では、PostmanはWebサービスをテストするツールです。 – LHCHIN

+0

TomcatのApacheを使用して – Agha

0

これはあなたに役立ちます
ホープ・サーバー上で実行します>あなたは必ずあなたのルートアプリケーションコンテキスト/UserManagementある - として実行> -
右プロジェクトをクリックしてください? デフォルトでは、Tomcat Webサーバーのルートアプリケーションのコンテキストは、Webアーティファクトの名前と同じです。したがって、UserManagement.warが 'tomcat_distribution_folder' \ webappsにコピーされていることを確認してください。

web.xml記述子が正しく設定されています。 HTTP 404エラーが発生しているため、アプリケーションがインストールされているWebサーバーが起動しています。 http://localhost:8080/rest/UserService/users

かの設定、Webサーバーとデプロイされたアプリケーションのための使用に必要なルートコンテキストを確認してください。

あなたは、空のルートコンテキストでエンドポイントを呼び出すために試みることができます。

+0

チュートリアルから、**/UserManagement **でURLにアクセスしました。この画像([link](https://www.tutorialspoint.com/restful/images/restful_postman.jpg)を確認してください) 。 – LHCHIN

+0

per tutorial: "eclipseを使用してWARファイルを作成するには、[ファイル]→[エクスポート]→[Web]→[War File]の順に選択し、最後にProject UserManagementとターゲットフォルダを選択します。インストールディレクトリ→webappsディレクトリに移動し、Tomcatを起動してください。 ** UserManagement.warを \ webappsフォルダ**にコピーしましたか? –

関連する問題