2017-09-04 7 views
1

を働いていないので、私は私のコードのPOSTメソッドを持っている:JAVAのAPI、JERSEY/POST

@POST 
     @Path("/send/{userPost}") 
     @Consumes(MediaType.APPLICATION_JSON) 
     @Produces("application/json") 
      public Response sendUser(@PathParam("userPost") String userPost) { 
      List<Post>userPosts = new ArrayList(); 
      Post post = new Post(99,userPost,"Bartek Szlapa"); 
      userPosts.add(post); 
      User user = new User(99,"Bartek","Szlapa",userPosts); 

       String output = user.toString(); 
       return Response.status(200).entity(output).build(); 

      } 

は、残念ながらその作業はありません。 404エラーが出ます。他の方法が完全に機能するため、サーバーが正しく構成されています。面白いのは、{userPost}を削除すると、パラメータ:@PathParam( "userPost")の文字列userPostが空の要求を送信します。http://localhost:8080/JavaAPI/rest/api/sendが動作します - いくつかのフィールドでnullの新しいUserオブジェクトが取得されています。なぜ私はパラメータを送信できないのか分かりますか?事前におかげで助けてください! :)

+1

すべきですか? –

+0

http:// localhost:8080/JavaAPI/rest/api/send?= test – Bartos

答えて

2

あなたが送信していることは、私たちは、あなたが「テスト」

を送信しようとしているとしましょう、あなたのAPIに基づいてパスパラメータとして、あなたの値を送信するために、パスのパラメータではありません
http://localhost:8080/JavaAPI/rest/api/send/test 

使用したい場合は、クエリが

@POST 
    @Path("/send") 
    @Consumes(MediaType.APPLICATION_JSON) 
    @Produces("application/json") 
     public Response sendUser(@QueryParam("userPost") String userPost) { 

をparamsは、あなたの要求は、あなたがしようとしている要求が何であるかを

http://localhost:8080/JavaAPI/rest/api/send?userPost=test 
1

あなたの "userPost" パラメータは、パスではありません:localhostを:8080 /のにJavaAPI /休憩/ API /送信=

あなたはこのパス定義されたテスト

:?だから、

@Path("/send/{userPost}") 

を、あなたのURIは次のようになります。

localhost:8080/JavaAPI/rest/api/send/test 
+0

パスにないことはどういう意味ですか?それはそうですね ... :) – Bartos