2016-09-13 13 views
0

dropwizardを使用してJersey Webサービスを作成しています。クライアントは、クロスドメインajaxメッセージにJsonPを使用しています。Jersey QueryParamがnullとして受信されました

私はこのようになりますリソースの方法だ:私は、私が期待するとして、コールバックパラメータを取得し、代わりにMyClassメンバーに注入されることになっている単一のJSON文字列を受信する

@Path("/addUser") 
@GET 
@UnitOfWork 
public String registerPortalUser(@Context HttpServletRequest req, @QueryParam("callback") String callback, @QueryParam("thedata") MyClass recordData) throws Throwable 
{ .. } 

をすべてのMyClassメンバー名とその値である多くのパラメータを取得します。つまり、すべてを1つのJson文字列として受け取るのではなく、すべてのメンバーを分割します。

これはどうしてですか?

+0

があなたのMyClassのオブジェクトを追加して

var thedata= [ thedata: { member1 = "value1", member2 = "value2" } ] 

を、それを変更した後、ジャージーはそれを認識しこれはここで問題になる可能性が最も高いからです。 – pandaadb

答えて

1

問題はクライアントで発生しています。 クライアントは次のようにJSONを送った:それはこのようにそれを送った解決

var thedata = 
{ 
    member1 = "value1", 
    member2 = "value2" 
} 

何:要求されたパラメータ

+0

私たちの残りの人(これを見て)が同じミスを犯さないようにクライアントコードを投稿することはできますか? –

0

あなたは明らかにnull MyClassオブジェクトをサーバーに送信しています。お客様のクライアントコードは次のようになります

 MyClass myC = new MyClass(); 
    //populate MyClass fields 
     WebTarget target = client.target(UriBuilder.fromUri("http://localhost:8088/YourWebApp").build()); 


     String res =(String) target.path("addUser").queryParam("thedata", myC).request().accept(MediaType.TEXT_PLAIN).get(String.class); 
関連する問題