問題タブ [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.
transactions - リクエストごとのトランザクションとジャージー
ジャージーのリソースと組み合わせて、リクエストごとのトランザクションを実装したいと思います。つまり、トランザクションを管理するための単一の場所が必要なことを意味します。
過去に、サーブレットフィルタで同様のことを行ったことがありますが、それはジャージーでは機能しません。ジャージーでは、例外がインターセプトされ、Webコンテナフィルターが制御を取り戻すずっと前に500に変換されます。フィルターアプローチを使い続けて、応答コードをチェックできると思いますが、それはあまり魅力的ではありません。これについていくつかの 会話を見てきましたが、ResourceFilter、CloseableService、またはServletContainerなどを使用した確実なアプローチを思い付くことができませんでした。これまでの私のひどい解決策は、カスタムExceptionMapperを実装してロールバックを実行することでした。そこの。誰かがこれをきれいに解決しましたか?
免責事項-このプロジェクトは現在Springを使用していないため、この小さなユースケースでは避けたいと思います。
java - RESTfulサービスにJerseyとGuiceを使用するための実用的なアドバイス
私がオンラインで見つけたものから、Guice + Jersey統合の最先端は、両方のチームが行き詰まったように見える2008年以来停滞しています。問題の核心は、JAX-RSアノテーションがフィールドとメソッドの注入を実行することであり、これはGuice自身の依存性注入とうまく機能しません。
私が見つけたいくつかの例は、解明するのに十分ではありません:
IqbalyusufのJersey+Guice on Google App Engine Javaに関する投稿は、多くの定型文(手動でインジェクターを取得して呼び出す)に悩まされています。バインディングとインジェクションは、Guiceアノテーションを介して舞台裏で行われる必要があります。
Jonathan Curranの記事「Jersey、Guice、およびJSR-250を使用したRESTfulサービスの作成」は、はるかに新しい(2010)ため、希望を与えてくれましたが、GuiceServletModule内でJerseyサービスを開始する方法を示しただけでした。ただし、実際の依存性注入を行う例はありません。それは読者の練習問題として残されたと思います。Curranの投稿は、実際にはGuiceとJerseyを接続するための正しい最初のステップである可能性があるため、それから始める予定です。
食欲をそそるジェームズ・ストラチャンはこう書いています:
JAX-RSは、Spring、Guice、GuiceyFruit、JBossMCなどの依存性注入フレームワークでうまく機能します。基本的にはどちらかを選択できます。
しかし、開業医の観点からは真実であるという証拠は見当たりません。
私が不足しているのは、JAX-RSとGuiceアノテーションを組み合わせる方法に関する実際的な例と説明です。例えば:
- ジャージーがこれを制御したいので、どのリソースでもコンストラクターインジェクションを使用できないと思います
- @Injectを@PathParam、@QueryParamなどと組み合わせることができるかどうかはわかりません。
- MessageBodyWriter実装でインジェクションを使用する方法
プロセスでどちらか一方を犠牲にすることなく、JerseyとGuiceを組み合わせた重要なアプリケーションの例を、できればソースとともに誰かが持っていますか?私は関係なくこの道を進んでいますが、ジャージーとギスのリストの断片は、私の前に来た他の人の仕事を繰り返しているように私に思わせます。
java - ジャージーで@Pathをオーバーライドする
パスから次の構造をとるJerseyアプリを作成しようとしています。
例1(スタックオーバーフローの制限のためhttp://省略)example.com/source/ {source-id} / example.com/source/
コードあり(エラー処理と不要なコードは省略):
コード付き(合計):
正常に動作します。
例2:example.com/data/{source-id}/{info-id}/example.com/data/{source-id}/
コードあり(エラー処理と不要なコードは省略):
例2では、example.com / data / 111/222 /のようなURLにアクセスできますが、hexample.com / data / 111 /を取得しようとすると、405エラーコードが表示されます(メソッドは許可されていません)。{data-id}が空か空白かをチェックするメソッド全体を作成しようとしました。その場合、最初のメソッドと同じように請願を処理しますが、どちらも機能しません。
何か案が?
ありがとう!
java - Java REST 実装: Jersey と CXF
この 2 つのライブラリの長所と短所は何だと思いますか? これら 2 つのうち、実稼働環境に最も適しているのはどれですか? ちなみに、XML の代わりに JSON を使用します。
また、チュートリアルやドキュメントなど、コミュニティで最もサポートされているライブラリも知りたいです。
hibernate - ジャージの安らぎ + グリズリー サーバー + 休止状態
ジャージ+グリズリーサーバーを立ち上げることができます。ただし、「SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory;」の実行中に問題が発生します。エラーは「重大: サービス例外: org.hibernate.HibernateException: /hibernate.cfg.xml が見つかりません」
.. hibernate を作成する方法を知っている人は、hibernate.cfg.xml の場所にアクセスできます。
java - @Producesアノテーション以外に、Jersey(JAX-RS)はPOJOを特定のmimeタイプとして扱うことをどのように知っていますか?
ジャージーの例は次のようになります。
しかし、アイテムを分析するのに問題があり、JerseyがアイテムをXMLまたはJSONに変換する方法をどのように知っているか。構築されたHTMLまたはXMLの文字列を返すだけの非常に基本的な例を見てきました。これは私にとってより理にかなっていますが、次のステップがありません。サンプルを調べたところ、オブジェクトが次のタイプの注釈でマークされていたため、そのうちの1つ(json-from-jaxbサンプル)が際立っていました。
この「翻訳」を段階的に説明するチュートリアル、またはPOJOを特定のmimeタイプとして出力するように翻訳する方法の説明を探しています。ありがとう!
java - Jersey リソースで @Singleton を使用する場合
データベースにアクセスするジャージー リソースがあります。基本的に、リソースの初期化でデータベース接続を開きます。リソースのメソッドに対してクエリを実行します。
@Singleton を使用しない場合、リクエストごとにデータベースが開いていることがわかりました。そして、接続を開くには本当に費用がかかることを知っていますよね?
だから私の質問は、リソースがシングルトンであることを指定する必要がありますか、それとも、特にリソースがデータベースに接続しているときに、リクエストごとに保持する方が本当に良いですか?
私のリソース コードは次のようになります。
そして、次のようなコードを使用してデータベースに接続します。
コードのベスト プラクティスに関するコメントも役立ちます。
java - RESTfull API (java jersery) の認証と認可
tinyurl や bit.ly と同様のサービスを実装しています。サービスを API として公開したいと考えています。Java と jersey を RESTfull サービスの実装として使用しています。
API を使用するユーザーを認証するための最も簡単な方法を探しています。OAuth が最初に頭に浮かびますが、問題は、コールバック URL を渡すアクセス トークン クエリよりも、リクエスト トークン クエリを使用したこの 3 回の反復呼び出しが必要ないことです。サーバーへの追加のセキュリティ呼び出しなしで、ユーザーが API を呼び出すことができるようにする必要があるだけです。
java - Java Jersey RESTful サービス
REST と Jersey は初めてなので、いくつかの基本的な例を試しています。ただし、まだ答えが見つかっていない特定の質問が 1 つあります (これを探す方法がよくわかりません)。共通サービスをステートフルでアクセス可能にするために、どのように保存/定義しますか?すべて/一部のリソースに?
たとえば、ロガー インスタンス (Log4J など)。これを手動で初期化して HttpSession に保存する必要がありますか? ロガーがすべて/一部のリソースにアクセスできるように、これを行う「ベストプラクティス」の方法はありますか?
java - ジャージー(Jax-RS)&EL
Expression Language-Filter を介してビューを返すようにコントローラーを取得しようとしていますが、ビューをフィルタリングするために EL を使用するジャージーを取得する方法がわかりません。
EL タグで表示:
コントローラ:
ビューの ${msg} 部分を任意の値に置き換えるためにコントローラーを取得するにはどうすればよいでしょうか?