2016-05-19 14 views
1

ジャージーアプリケーションがあり、フォーム提出を成功させることができませんでした。 415サポートされていないメディアタイプエラーが発生します。ジャージーアプリケーション - 415サポートされていないメディアタイプ

AngularJs:

$http.put(url, frmData, { 
     transformRequest: angular.identity, 
     headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
     data: frmData 
    }); 

のJava:

@PUT 
@Path("/submitform") 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public void saveForm(@Context HttpServletRequest request, 
        PojoClass pojoClass) { 

} 

私は415のサポートされていないメディアタイプのエラーが発生します。

どこに間違いがありますか?

答えて

0
  1. 、あなたのsaveFormMethod代わりに、直接入力パラメータとしてマッピングpojoClass

  2. @Consumes(MediaType.APPLICATION_JSON)を追加stringとして入力パラメータを変更してから、実際のP​​OJOオブジェクトに戻って文字列を変換するgsonライブラリを使用しています。

2

tweekingなしで、Jerseyはapplication/x-www-form-urlencodedデータをPOJOに変換する方法を知らない。次はあなたがPOJOを使用したい場合は、あなたが@BeanParamとPOJOパラメータに注釈を付けることができ、あなたが角度かかわらを使用している場合@FormParam

public class POJO { 
    @FormParam("key1") 
    private String key1; 
    @FormParam("key2") 
    private String key2; 
    // getters/setters 
} 

public Response pose(@BeanParam POJO pojo) 

とPOJOのフィールドに注釈を付けることが

public Response post(javax.ws.rs.core.Form form) 

public Response post(MultivaluedMap<String, String> form) 

public Response post(@FormParam("key1") key1, @FormParam("key2") String key) 

を知っていることですJSONを使用することもできます。デフォルトの動作です。 JSONを使用する場合は、this postをチェックしてください。

関連する問題