問題タブ [jersey]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - Jersey サービスでの JSON オブジェクトの使用
私はこれを行う方法を見つけようとして、お尻をグーグルで検索してきました.Jersey RESTサービスがあります。REST サービスを呼び出す要求には、JSON オブジェクトが含まれています。私の質問は、Jersey POST メソッドの実装から、HTTP リクエストの本文にある JSON にアクセスするにはどうすればよいですか?
サンプルコードへのヒント、トリック、ポインタは大歓迎です。
ありがとう...
--スティーブ
java - Grizzly 上の Jersey で JaaS を使用する
JaaS 認証を REST に追加するためのシンプルで柔軟な方法を見つけようとしています。正しい方向に導くと思われる投稿を見つけました(StevenCの回答を参照)。Jerseyコード自体ではなく、サーブレットコンテナがセキュリティを担当しているようです。このアイデアは気に入っていますが、実装について少しガイダンスが必要です。
Grizzly は私のサーブレット コンテナーであり、認証に JaaS を使用するように構成したいと考えています。今のところ、単純なユーザー名とパスワードの組み合わせで問題ありません。ユーザー名とパスワードのペアをコードに直接ハードコーディングしても問題ありません。JaaS を使用している限り、後で詳細を調整できます。
HTTP 経由で送信されるものに関しては、Cookie を保存することが、これをすべて機能させる最も簡単な方法であると考えています。認証ジャンクをジャージーコードから遠ざけるために必要なものは何でも。
ここまでで Grizzly を起動するコードは次のとおりです。
このプロセス全体が機能する場合、ユーザーのアクセス許可を確認する最善の方法は何ですか? おそらく、REST コードで特定の時点でアクセス許可を実際に検証したいと思うでしょう。私は正しい軌道に乗っていますか?もっと簡単な方法はありますか?チュートリアルへのリンクは素晴らしい答えです。「私はそれを行い、うまくいきました」のような答えでさえ、私が正しい方向に向かっているという温かいあいまいさを私に与えるでしょう.
助けてくれてありがとう。
編集:StevenCのコメントに対するいくつかの説明:
- リソースを保護するために、引き続きサーブレット フィルタを使用しますか? 認証の詳細をジャージー コードから分離できるものは何でも使用します。サーブレット フィルターである必要はありません。
- 「JaaS を使用するように構成する」とはどういう意味ですか? 当初の計画は、JaaS を使用して現在の API を保護することでした。次のフェーズは、API 全体をオンラインで利用できるようにすることです。API 呼び出しの周りに Jersey ラッパーを配置することは理にかなっているように見えましたが、Grizzly によって処理された認証を維持します。その時点で、Grizzly は JaaS とやり取りする必要があると思います。
- grizzly にリソースを保護させるだけの構成が必要だと思いますか? 私は、ユーザーを認証し、ロールに基づいて、ユーザーがリソースにアクセスすることを承認する 2 段階のプロセスを検討していました。アイデアは、Grizzly が (JaaS を使用して) 認証を処理し、Jersey が承認を処理するようにすることでした。
- 「RESTful リソースで Cookie を使用する必要はないと思います。」Cookie の使用を削除することは素晴らしいことですが、どうすれば実現できるのでしょうか? システムは、ユーザーが認証されているかどうかを知る必要があります。呼び出しごとにユーザー名/パスワードなどを渡すように依頼したくありません。すべての呼び出しでパラメーターとしてセッション トークンを渡すことでさえ、「醜い」ように見えます。
また、私は REST にかなり慣れていないことに注意してください。私はSOAPを数年間やっているので、「SOAPバイアス」があり、誰もが使用する明白で単純なソリューションから目がくらんでいる可能性があります. もっと簡単な方法がある場合は、お気軽に共有してください。私はできるだけ多くのことを学ぼうとしています。
java - REST API のドキュメントを自動化する方法 (Jersey 実装)
私は、Java Jersey (および JAXB) を使用してかなり広範な REST API を作成しました。私も Wiki を使用してドキュメントを作成しましたが、これは完全に手動のプロセスであり、非常にエラーが発生しやすく、特に変更を加える必要がある場合、人々は Wiki の更新を忘れがちです。
周りを見渡すと、他のほとんどの REST API も手動でドキュメントを作成しています。しかし、これに対する良い解決策があるかどうか疑問に思っています。
各エンドポイントについて文書化する必要があるものは次のとおりです。
- サービス名
- カテゴリー
- URI
- パラメータ
- パラメータの種類
- 応答タイプ
- レスポンス タイプ スキーマ (XSD)
- リクエストとレスポンスの例
- リクエストの種類 (Get/Put/Post/Delete)
- 説明
- 返される可能性のあるエラー コード
そしてもちろん、次のようなグローバルな一般的なものもいくつかあります。
- 安全
- REST の概要
- エラー処理
- 等
これらの一般的なことは一度説明すれば問題なく、自動化する必要はありませんが、Web サービス メソッド自体については、自動化することが非常に望ましいようです。
私はおそらく注釈を使用して、XML を生成する小さなプログラムを作成し、次に HTML で実際のドキュメントを生成する必要がある XSLT を作成することを考えました。カスタム XDoclet を使用する方が理にかなっていますか?
http - ブラウザで HTTP 303 リダイレクトが機能しない
私のジャージリソースはこれをクライアントブラウザ、つまり(サファリとクロム)に送信していますが、ブラウザはリダイレクトしていません。以下の HTTP 応答に問題はありますか?
java - Jerseyを使用して完全なRESTリクエスト本文を取得するには?
POST
Jersey を使用してリクエストの完全な HTTP REST リクエストボディを取得するにはどうすればよいですか?
この場合、データは XML になります。サイズは 1K から 1MB までさまざまです。
ドキュメントは、使用する必要があることを示しているようですがMessageBodyReader
、例が表示されません。
java - jersey Viewableおよびc:import tag lib
メソッドwitchを持つリソースクラスをGiverが返すと、Viewable(または一般的には任意のjspページ)が返されます。c:importまたはjsp:include taglibを使用して、jaxrs注釈付きクラスからのViewable応答を含める方法はありますか?たとえば、クラスが与えられた
計算されたhtmlをjsp内に含める方法はありますか?
または
java - JAX-RSはエンティティをJAXBオブジェクトおよび文字列として取得します
リクエスト エンティティとして JAXB オブジェクトを受け入れる JAX-RS Web サービス (jersey を使用) があります。エラーが発生した場合、送信された元の xml 文字列をログに記録します。現在、私は JAXB オブジェクトを再マーシャリングしていますが、これらのクラスにはいくつかの Java 列挙型があるため、元の xml 文字列で正しく綴られていない列挙型の値が失われ、これは私たちの目的には受け入れられません。
リクエストエンティティを文字列と JABX オブジェクトの両方として取得する方法を知っている人はいますか? カスタム MessageBodyReader を作成したくないし、可能であれば JAXB の MessageBodyReader を取得しようとしないことを好みます。ジャージ固有のクラスも自由に使用できます。バージョン 1.0.x を使用しています。
json - ContextResolverを実装するジャージー春に
そこで、Spring(2.5(+ Jersey(1.1.4.1)を作成し、ContextResolverを使用してJSONConfigurationを作成しようとしています。コードは次のとおりです。
残念ながら、私のアプリはまだデフォルトのマッピングを返しています:
{"id": "1"、 "question": "最初のペットの名前は何ですか/何でしたか?"}
アプリケーションをデバッグするとき、実際にこのコードにヒットすることはありません。これはSpringServletを使用しているためですか?これが私のweb.xmlのJerseyConfigです。
JSONConfigurationが機能している同様の設定をしている人はいますか?
java - Jersey を使用して REST Web サービスにオブジェクトを渡す
私は単純な WS を持っており@PUT
、オブジェクトを取り込みます
私のクライアント側のコードは...
WolRequest
のインスタンスをWeb サービスに渡そうとしています@PUT
。これを行おうとすると、常に405エラーが発生します..
Jersey 経由でクライアントからサーバーにオブジェクトを渡すにはどうすればよいですか? クエリ パラメータまたはリクエストのどちらを使用しますか?
両方の POJO (WolRequest
およびWolResponse
) にXMlRootElement
タグが定義されているため、xml を生成および使用できます。