2016-12-07 17 views
0

これはRESTfullアプリケーションでの私の最初の試みです。私は私のものと同じ問題で多くのページを読んだが、静かではなかった。RESTfull Jerseyアプリケーション、要求されたリソースが利用できません

これは私のサービスです。

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

マイ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>Restful Web Service</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

私はジャージー2.17とTomcat 7.0を使用しています。すべての.jarが/WEB-INF/libに正しく追加されているようです。プロジェクトを.warファイルとしてエクスポートし、/Tomcat/webappsディレクトリに配置しました。 methodesはチュートリアルからです

HTTP Status 404 - /RestV1/rest/UserService/users The requested resource is not available.

ので、それらに問題があってはならない: は、それから私は、私はこのエラーを取得しています

http://localhost:8080/RestV1/rest/UserService

を起動しようとしています。また、私のTomcatエラーログは空です。 何が悪いと思いますか?

+0

に一致していることに注意してくださいあなたが作る戦争のRestV1.war名前ですか? – gregbert

+0

はいサー、およびプロジェクトの名前。 – LucasPG

+0

私はで一致させるためにservlet-nameが必要だと思います。 – gregbert

答えて

0

<servlet-mapping><servlet>に定義した<servlet-name>と同じものを使用する必要があります。だから、サーブレット定義で:

<servlet> 
    <servlet-name>Jersey RESTful Application</servlet-name> 
    ... 
</servlet> 

あなたのマッピングは次のようになります。

<servlet-mapping> 
    <!-- this will not map properly 
    <servlet-name>Restful Web Service</servlet-name> 
    --> 
    <servlet-name>Jersey RESTful Application</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

私はTomcatをダウンロードし、名前が一致しなかったとき、私は404を得たことを確認した、と要求がときserveltに達しました彼らがやった。参考として

、検索サーブレット・マッピングおよび使用される名前は、常にこれらのexamples

+0

残念ながらそれは役に立たなかった – LucasPG

+0

Tomcatのすべてのキャッシュをクリアしましたか?以前の展開で爆発したフォルダを削除する必要がありました。 – gregbert

+0

キャッシュクリアdidntの助け今私は異なった誤りを得た。 "HTTP Status 500 - サーブレットJersey RESTfulアプリケーションのServlet.init()が例外をスローしました"、サーバーがこの要求を実行できないような内部エラーが発生しました。 – LucasPG

関連する問題