これはこれまでに回答している必要がありますが、私のGoogleの能力は今日オフになっており、これで少し苦労しています。古いPHPベースからJerseyベースのJVMスタックに移行しています.JVMベースのRESTful APIは、多くのアプリケーションで使用できます。これまでのことはこれまでのところ本当にうまくいっていて、簡単なPOJOからJSONへの変換が大好きです。しかし、我々はクロスドメインJSON要求の難しさに対処しています。私たちは基本的にJSONを返す(@Produces( "application/json")とcom.sun.jersey.api.json.POJOMappingFeatureをtrueに設定した)すべての返答を持っていますが、JSONPをサポートするためには、 JSONWithPaddingのインスタンスこれは当然、@QueryParam( "callback")パラメータを各メソッドに追加する必要もあります。これは、基本的には私たちの努力を複製し、コールバックパラメータがあるかどうかによって同じデータで応答する2つのメソッドが必要になります要求に含まれます。明らかに、これは私たちが望むものではありません。Javaのジャージー、RESTful API、JSONP
私たちは本質的に2つの異なるオプションを試しました。ジャージーには比較的新しいので、私はこの問題が解決されたと確信しています。私はいくつかの場所からリクエストフィルタを書くことができますか、JSONプロバイダを拡張することができます。私の理想的な解決策は、データやロジックレイヤに影響を与えず、代わりに「コールバックパラメータがある場合はコールバックでJSONを囲み、それ以外の場合はJSONを返す」というコードを用意することです。解決策はここにあります: http://jersey.576304.n2.nabble.com/JsonP-without-using-JSONWithPadding-td7015082.html
ただし、この解決策は、デフォルトのJSONプロバイダではなく、Jackson JSONオブジェクトを拡張しています。
ベストプラクティスは何ですか?適切なトラックにいる場合、拡張可能なデフォルトのJSONフィルタのクラスは何ですか?追加の設定が必要ですか?私は完全にオフトラックですか?
問題は、デフォルトでjQueryの*ヘッダを受け入れ送信するので、要求されたMIMEタイプと指定されたタイプは、JSONPであっても、要求としてアプリケーション/ JSONを送信したことにあります。私は最終的に別の答えで作業する必要があるものを入力していますが、要するにJersey以外のフィルタとラッパーを作成してJSONリクエストのコールバックパラメータが存在するかどうかを確認し、存在する場合はコールバックを追加します応答出力。しかし、返信いただきありがとうございます! –