問題タブ [jersey-test-framework]
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.
java - JerseyTest REST WEB SERVICEをテストするためのデフォルトポートの変更
Rest Web サービスをテストするテスト ケースを作成しました。http://localhost:9998
しかし、テストケースでは、私のサービスが登録されているジャージーテストフレームワークのデフォルトポートにリクエストが送信 されていることがわかりますhttp://localhost:8080
。ポートを変更する方法がわかりません8080
java - 依存性注入に Spring を使用したジャージー Web サービスの統合テストが @Context HttpServletRequest の初期化に失敗する
依存性注入 (spring-jersey モジュール) に spring を使用し、オブジェクト リレーショナル マッピング (ORM) に hibernate を使用する jersey Web サービスがあります。以下の条件を考慮して統合テストを開発するため:
- テスト クラス全体に対して 1 回だけテスト コンテナーを初期化する
- カスタム リスナー、フィルター、サーブレットなどをテスト コンテナーに登録する
- @Context HttpServletRequest が null でないことを確認してください
このhttps://java.net/jira/browse/JERSEY-2412ジャージー プロジェクト JIRA タスクHttpServletRequestによると、これはタスクWorks as desginedの解像度に示されているとおりです。Grizzly コンテナーで統合テストを実行すると、httpサーバーで統合テストが実行されるため、 HttpServletRequest、HttpServletResponseなどのサーブレットベースの機能への依存は利用できません。
この問題に対処する方法に関する標準的な解決策はないようです。Jerseyコミュニティは、このhttps://java.net/jira/browse/JERSEY-2417 JIRA チケットに記載されているように、貢献者によって開発された機能に対して明らかにオープンです。この機能が実装されるまで、どのような回避策が考えられますか? 私の調査に基づいて、次のような投稿をいくつか見つけました。
- 外部コンテナーを使用する (私もしたくない場合はどうすればよいですか?)
- jersey の jetty モジュールを使用します (Jetty を使用したくない場合はどうすればよいですか?)
- このプロジェクトには適用されない SpringMVC 固有のソリューション (Spring MVC を使用しないため)
では、依存性注入に spring-jersey ブリッジを使用し、 サーブレットベースの機能に依存する jersey ベースの Web サーバーで統合テストを正常に実行するための最適なソリューションは何でしょうか?
rest - JerseyTest が 400 Bad Request を返す代わりに ConstraintViolationException をスローするのはなぜですか?
Jersey バージョン 2.23.2 を使用JerseyTest
していますが、検証が失敗した場合の応答をテストする方法がわかりません。何らかの理由で、以下のテストは、Bad Requestを返す代わりにConstraintViolationException
、a でラップされた a をスローします。がスローされたことを確認するようにテストを変更することもできますが、実際には応答をテストしたいと考えています。なしで Grizzlyを実行すると、適切なBad Request 応答が返されます。以下のテストを修正する方法についてのアイデアはありますか?ProcessingException
400
ProcessingException
HelloResource
JerseyTest
400
badRequestResponse()
これが私が得ている例外です:
java - スプリング @Value でアノテーションが付けられたメンバーを使用して Jersey エンドポイントをテストする
私はJerseyを使用しようとしています.Spring Webアプリにjax-rsエンドポイントを持たせるために、Springと統合しています。
私が抱えている問題は、@Value で注釈が付けられたアプリケーションのメンバーが、単体テストに入力されていないことです。
@Autowired が設定されているものは正常に機能し、文字列のセッター メソッドを作成して @Value で注釈を付けると、これも機能します。
私を悩ませているのは、@Value で直接アノテーションが付けられたメンバーがテストでは機能せず、Tomcat にデプロイすると機能することです。
これは、何らかの形でテスト構成に問題がありますか? それとも、これはどこかで既知の問題ですか?
これらは私が考える関連する依存関係です:
ここで問題を例示する小さなプロジェクト: https://github.com/alexanderkjall/jersey-jetty-interaction-example/blob/master/src/main/java/no/hackeriet/bugs/SpringRequestResource.java
java - Jersey Test/Client がデフォルトの Accept ヘッダーに入力しないようにするにはどうすればよいですか?
特定の方法でヘッダーのないリクエストを処理しようとしてAccept
いますが、ジャージーは私が何をしてもヘッダーを埋めることに必死に見えるので、Accept
ヘッダーがなくても常にリクエストにヘッダーがあるように見えます.
このテストの結果は次のとおりです。
どういうわけか、どこかに設定されるデフォルトAccept
のヘッダーがあります。text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
文書化されていません。無効にする方法を知りたいです。ジャージーのソースを調べましたが、これがどこで発生しているのか、またはその理由を特定できないようです。
更新: curl を使用して Accept ヘッダーなしでエンドポイントをヒットすると、Accept ヘッダーが生成されないため、問題はジャージー クライアントまたはジャージー テスト環境にあります。
更新 2: このバグは、デフォルトの Grizzly2 テスト コンテナーまたは JDK テスト コンテナーを使用している場合に発生しますが、イン メモリ テスト コンテナーでは発生しません。
java - Jersey2.0 を使用して JerseyTest の springbeans にアクセスする
私は春のジャージ プロジェクトを持っています。今私のテストはJerseyTestから派生しています。やろうとすると
ジャージテストでスプリングが効いてないようです。私はいくつかの調査を行い、spring_jersey のようないくつかのリンクを見つけまし た が、jersey2.0 を使用しているため、機能しませんでした。
私のコードは次のようになります
アップデート:
豆を入れました
src/test/resources/META-INF/applicationContext.xml
追加した同じ Bean
src/main/resources/META-INF/applicationContext.xml