問題タブ [jax-rs]
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 - JAX-RS フレームワーク
私は JAX-RS 参照実装 (Jersey) を使っていくつかの作業を行ってきました。他に少なくとも 2 つのフレームワーク (Restlet と Apache CXF) を知っています。
私の質問は次のとおりです。これらのフレームワークを比較した人はいますか?もしそうなら、どのフレームワークをお勧めしますか?その理由は?
java - JAX-RS Web サービスをテストしていますか?
現在、 JAX-RS (Java API for RESTful Web Services) ベースの Web サービスの自動テストを作成する方法を探しています。
基本的に、特定の入力を送信して、期待される応答が得られることを確認する方法が必要です。JUnit経由でこれを行うことを好みますが、それをどのように達成できるかわかりません。
Web サービスをテストするためにどのようなアプローチを使用していますか?
更新: entzik が指摘したように、Web サービスをビジネス ロジックから切り離すことで、ビジネス ロジックの単体テストを行うことができます。ただし、正しい HTTP ステータス コードなどもテストしたいと思います。
java - スキーマのない Java REST クライアント
ゴール
Yahoo の HotJobs Resume Search REST APIの Java クライアント。
バックグラウンド
私は、SOAP API 用の Web サービス クライアントを作成することに慣れています。そこでは、wsimportがプロキシ スタブを生成し、オフにして実行しています。しかし、これは私にとって新しい REST API です。
詳細
- 残りのAPI
- WADLなし
- 正式な XML スキーマ (XSD または DTD ファイル) はありません。XML リクエスト/レスポンス ペアの例があります。
- サンプルコードは提供されていません
進捗
質問Rest clients for Javaを見ましたか? 、しかし、そこにある自動化されたソリューションは、スキーマと REST API を生成するために POJO で呼び出された JAXB を使用して、サーバーとクライアントの両方を提供していることを前提としています。
Jersey ( JAX-RS実装)を使用して、手動でHTTPリクエストを作成できました:
応答は次のようになります。
または、次のようになります。
質問
java - JAX-RS / Jersey エラー処理をカスタマイズする方法は?
Jersey を使用して JAX-RS (別名、JSR-311) を学習しています。ルート リソースの作成に成功し、パラメーターをいじっています。
これはうまく機能し、Date(String) コンストラクターによって理解される現在のロケールの任意の形式 (YYYY/mm/dd や mm/dd/YYYY など) を処理します。しかし、無効または理解できない値を指定すると、404 応答が返されます。
例えば:
この動作をカスタマイズするにはどうすればよいですか? おそらく別の応答コード (おそらく「400 Bad Request」) ですか? エラーをログに記録するのはどうですか?トラブルシューティングを支援するために、カスタム ヘッダーに問題の説明 (「不正な日付形式」) を追加することはできますか? または、5xx ステータス コードと共に、詳細を含むエラー レスポンス全体を返しますか?
java - Spring 3 (m3) 上に構築された REST 完全アノテーション付きサービスの最小構成は何ですか?
REST フル サービス (Tomcat がホスト) を公開しようとしていますが、Spring 3 (M3) に必要な構成がわかりません。
これは(例)サービスがどのように見えるかです:
私が持っている Spring 構成は次のようになります (簡単にするために、完全なクラス名は省略します)。
これは、Spring 構成を web.xml にプラグインした方法です。
最小限の構成を作成しようとしていることに注意してください (余分な servlet-config.xml ファイルはありません)。これが、Dispatcher を組み込み構成に向けている理由です。
これは正しいです?
Tomcat を起動してすべての Bean をロードしたら、次の URL に移動します。
そして、「こんにちは、ユーザー!」の代わりに。残念なことに、ログ ファイルに次のエラーが表示されます。
お気づきのとおり、現在の構成では、このリクエストを新しいリクエストとして再ルーティングしようとしています。
何が間違っているのですか?私は何が欠けていますか?
java - JERSEY Webサービスのテストケースを作成するための最良の方法は何ですか?
JAX-RS WebサービスをJerseyライブラリで実装していますが、テストしたいと思います。そのために、モックサービスで事前に初期化して、テストでこのサービスをホストしたいと思います。
そのようなサービスをホストし、テスト呼び出しを実行するための最良の方法は何ですか?
java - JAX-RS は REST の実装に最適です。Java で REST サービスを呼び出すために何を使用しますか?
理想的には、JAX-RS のようなもの (呼び出したいサービスを記述するために注釈を使用) を探していますが、(JAX-RS ではなく) 他のテクノロジを使用して実装された REST サービスを呼び出すことができます。なにか提案を?
jersey - Jersey JAX-RSでの例外処理/リソース管理
Jersey で RESTful Web アプリケーションをプログラミングしているときに、競合するリソース (データベース セッションなど) を管理しようとしています。通常、私は次のようなコードを書きます。
ジャージーを使用すると、次のようなリソースがあります。
問題は、getChild() でセッションを取得する必要があることですが、Web アプリケーションに制御を戻してしまっているため、作業が完了した後にセッションを適切に解放できるかどうかを確認できません。
子もセッションにアクセスする必要があるため、すべての作業を 1 つのメソッドにカプセル化することはできません。
セッションを構築するためにジャージー レベルからの情報が必要なため、アプリケーション全体をサーブレット フィルターでラップすることはできません。これで、MyResource で開くことができます。通常のサーブレット フィルターを使用して、常に閉じるようにしますが、ロールバックするタイミングとセッションをコミットするタイミングがわかりません。ExceptionMapper を使用してすべての例外を通知することもできますが、これは ExceptionMapper である必要があり、概念的な try/finally が異なるライフタイムを持つ 3 つのクラスに分散されているなど、非常に醜いように思えます。
Jersey でこの種のリソース管理を行う「正しい方法」はありますか? リソースとそのサブロカトがそれを使用した後、たとえば FileInputStream を適切に閉じるにはどうすればよいですか?
java - JERSEY と JAX-RS
jersey と JAX-RS を使用して最も単純な REST サービスをデプロイしようとしていますが、このエラーが発生します。
HTTP エラー: 404 NOT_FOUND RequestURI=/hosting/demo/example
私はすべてを正しく行ったと思いますが、以下は私が使用しているコードです。
POM.XML(ジャージ関連部分のみ貼り付け)
Web.XML
@GET を持つクラス
私がヒットした URL は次のとおりです: http://localhost/hosting/demo/example