2016-12-27 25 views
3

JSONを使用するJersey RSを利用するJava WebサービスのPOSTメソッドを作成しようとしていますが、サンプルJSONを送信すると400の不正リクエストエラーが発生します。400 POSTサービスのリクエストが正しくありません

@Path("/Register") 
@Stateless 
public class RegistrationController { 

    @POST 
    @Path("/Test") 
    @Produces(MediaType.APPLICATION_JSON) 
    @Consumes(MediaType.APPLICATION_JSON) 
    public String postHelloWorld(String message){ 
     return "temp"; 
    } 

上は、POSTメソッドのコードであり、Iは、ポストマンなどAPIサービスを使用しようとしたときのヘッダを設定するポストマンを使用し

http://localhost:37846/Register/Test

にPOSTリクエストを送信しますコンテンツタイプをapplication \ jsonとして、いくつかのJSONサンプルを

{"menu": { 
    "id": "file", 
    "value": "File", 
    "popup": { 
    "menuitem": [ 
     {"value": "New", "onclick": "CreateNewDoc()"}, 
     {"value": "Open", "onclick": "OpenDoc()"}, 
     {"value": "Close", "onclick": "CloseDoc()"} 
    ] 
    } 
}} 

などの400個の不正リクエストエラーが表示されます。


レスポンスボディ:私をリード( "こんにちは")ジェネリックsystem.out.printを行ったようにSystem.outは、失敗したメッセージを使用してメッセージを印刷しようとすると

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
    <title>GlassFish Server Open Source Edition 4.1.1 - Error report</title> 
    <style type="text/css"> 
     <!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}HR {color : #525D76;}--> 
</style> 
</head> 

<body> 
    <h1>HTTP Status 400 - Bad Request</h1> 
    <hr/> 
    <p><b>type</b> Status report</p> 
    <p><b>message</b>Bad Request</p> 
    <p><b>description</b>The request sent by the client was syntactically incorrect.</p> 
    <hr/> 
    <h3>GlassFish Server Open Source Edition 4.1.1 </h3> 
</body> 

</html> 

このメソッドが呼び出されていないと信じる。
私は404エラーを受け取っていないので、データタイプを微調整すると、415 Unsupported Mediaタイプのエラーが表示されます。これは不正なマッピングなどのルールを排除します。
JSONの形式が誤っていないため、送信されたリクエストまたはWebサービスによるリクエストの処理方法に問題がある可能性があります。

+1

です。プログラムをデバッグしてください。インクルード 'message'を表示します。リクエストはJSONを消費せずにメソッドに対して機能しますか? – ppasler

+2

400 Bad Requestは、/ testエンドポイントが送信しているパラメータと異なるパラメータを要求していることを意味します。 JacksonのようなJSONオブジェクトマッパーを使用していますか?その場合は、JSONのメニューと同じ値(ID、値、ポップアップ)を含むオブジェクトを作成する必要があります。 –

+1

400は、ほとんどの場合、悪いデータを送信していることを意味します。エラーの説明付きの応答本文がないのは確かですか?良いサービスが必要です。 – cen

答えて

1

問題はヘッダーにタイプミスがありました。

Content-Type application\json 

400エラーの原因は何ですか?
問題を解決するヘッダーは

Content-Type application/json 
関連する問題