問題タブ [cxfrs]
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 - CXF RS: カスタム ExceptionMapper を使用するようにアプリケーションに指示するにはどうすればよいですか?
の使用方法を文書化したこのドキュメントを見つけましたExceptionMapper
。ただし、それを使用する必要があることを webapp に伝える方法に関する情報は提供されません。どうすればそれを設定できますか?
java - CXF RS では、リクエスト フィルターでリソース メソッドを取得できますか?
どのメソッドが呼び出されているかに応じて、残りの API に対して行われた呼び出しを異なる方法で承認したいと考えています。しかし、RequestHandler
次のようになります。
Method
その から呼び出されるを取得する方法がわかりませんresourceClass
。これは可能ですか?
には、次のResponseHandler
名前のこれを実行できるパラメーターがあるようですOperationResourceInfo
:
しかし、その時までに、削除する権限のないものは既に削除されています (例として)。
リクエスト フィルタで呼び出されるメソッドを特定するにはどうすればよいですか? FWIW、私が欲しい理由はMethod
、各メソッドに付けるカスタムビルドの注釈を検索したいからです。これにアプローチするより良い方法があれば、私はその考えを受け入れます。
完全を期すために、このトピックに関するドキュメントを次に示します: http://cxf.apache.org/docs/jax-rs-filters.html
apache-camel - Apache Camel + JBoss Fuse - CXFRS コンポーネントと Bean コンポーネント間のルーティング - IOException ストリームが閉じられました
次のように構成された application/json を返す CXF REST サービスを作成しました。
プロスペクトジェネレーター:
このサービスは、JBoss Fuse にデプロイされると機能します。
これで、次のような Camel Route ビルダーができました。
見込み客サービス:
定義された Bean にルーティングしようとすると、次の例外が発生します。
org.apache.camel.InvalidPayloadException: タイプのボディはありません: com.karthik.bo.Prospect が値を持っています: タイプの org.apache.cxf.jaxrs.impl.ResponseImpl@54c96476
このエラーを解決するにはどうすればよいですか? ResponseImpl を POJO に変換する方法がわかりません。来たトレースは示します:
BodyType:org.apache.cxf.jaxrs.impl.ResponseImpl, Body:{"prospect":{"customerType":"VIP","prospectId":999,"prospectName":"karthik"}}
ResponseImpl を String (JSON ペイロードを含む) に変換しようとしましたが、常に IOException ストリームが閉じられます。-以下の変換コード:
多くの失敗の試み(コメントで言及)の後、最終的な解決策は次のように FallBackCoverter を作成することでした-これはストリームを閉じた IOException をスローしませんでした。
私のルーターは次のように変更されました:
これが唯一の方法であるかどうかを確認せずに、これを解決策としてマークすることはできませんでした. camel-cxf で古い JIRA の問題を見つけた後、私のソリューションが実装されました
https://issues.apache.org/jira/browse/CAMEL-3208
この目的のために FallBackConvertor を作成する必要がありました。
java - CXF で HashMap をデシリアライズする方法
HashMap を返すサービスがあり、json プロバイダーとして org.apache.cxf.jaxrs.provider.json.JSONProvider を使用していますが、「クラス java.util.Collections のメッセージ本文ライターが見つかりませんでした」というエラーが表示されます。 $EmptyMap、ContentType: アプリケーション/json". どうすればこれを修正できますか?
rest - Apache camel cxfrs — のリクエストが見つかりません観察者
私は残りのサービスを開発し、Apache Camel の CXFRS を介して同じものを公開しようとしました。http://camel.apache.org/cxfrs.htmlに記載されているすべての手順に従い、指定された多くのサンプルも参照しました。私はすでに質問Can't find the request for url Observerを参照しましたが、私の場合は単純な残りのリクエストです。以下は、使用される Service クラス、Route クラス、および cxf コンテキストです。
サービス クラス:
ルート クラス:
しかし、http://localhost:8080/restを使用してヒットしてテストしようとすると、常に次のエラー メッセージが表示されます。
Spring Boot を使用して残りのサンプルをテストしています。