問題タブ [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.
http - プロトコル バッファの MIME 問題
ヘルプ!Rest (Jersey) を介して Protocol Buffers を実装しようとしていますが、この例外が発生します。
ProtobufMessageBodyReader/Writer を Apache ContextLoader にロードしました。上記のログから、Tomcat はクラスを見つけたようですが、読み取り時に失敗することは明らかです
ここに ProtobufMessageBodyReader があります
そして、ここに ProtobufMessageBodyWriter があります
クライアントからのコードは次のとおりです。
そして、ここにサーバーからのコードがあります
何が問題なのかわかりません。ジャージーの設定に何かありますか? または、HTTP 経由でプロトコル リクエストを送信したときに何か問題がありますか?
どんな助けでも感謝します。
ありがとう
jakarta-ee - エンティティからxmlへのJAX-RSカスタムマッピング
これが私の問題です:
JAX-RSアノテーションが付けられた2つのエンティティがあるとします。
これは次のようにレンダリングされます。
したがって、私の質問は次のとおりです。
返されるxmlが次のようになるようにこれらのエンティティに注釈を付けることは可能ですか?
つまり、AddressエンティティのプロパティはPersonプロパティとして扱われます(囲みタグなし)?
java - ジャージーのシステム全体のアダプター?
ジャージーjavax.xml.bind.annotation.adapters.XmlAdapter
のタイプの「システム全体」のカスタムを構成しようとしています。java.util.Locale
私が制御するクラスで使用するのは簡単@XmlJavaTypeAdapter
ですが、常にそうであるとは限りません (注釈を付けることができないサードパーティのコード)。
それはかなり一般的な問題のようですが、それを処理する方法についての良い例やドコが見つかりません。
それで、それは可能ですか?
ありがとう!
java - XML または JSON を使用した JAX-RS (Jersey) カスタム例外
Jersey を使用して構築された REST サービスがあります。
サーバーに送信された MIME に応じて、カスタム例外ライターの MIME を設定できるようにしたいと考えています。application/json
json を受信しapplication/xml
た場合、および xml を受信した場合に返されます。
今、私は をハードコーディングapplication/json
していますが、それは XML クライアントを暗闇の中に置き去りにしています。
現在のリクエストを取得するには、どのコンテキストを利用できますContent-Type
か?
ありがとう!
回答に基づいて更新
完全なソリューションに興味がある他の人のために:
一緒にExceptionMapper
ErrorResponseConverter はカスタム JAXB POJO です。
java - URI パスを JAX-RS プロバイダーに渡す
私は最近、Jersey JAX-RS Rest サービスを実装しました。XML 型と Java 型の間でアンマーシャリングとマーシャリングを行うことができる JIBX プロバイダーを作成しました。URL パスでバージョンを指定して、サービスのバージョンも変更したいと考えています。バージョニングには、Java 型のマーシャリングおよびアンマーシャリングに使用されるメッセージ バインディングのバージョンが含まれます。
したがって、バージョンをカスタム JIBX プロバイダーに渡す必要があり、そのバージョンを含む URL パスが必要です。ただし、プロバイダ インターフェイス (MessageBodyWriter
およびMessageBodyReader
) は、インターフェイス メソッドで URI パスを提供しません。
以下は、インターフェイスのwriteTo()
メソッドのメソッド シグネチャです。MessageBodyWriter
このメソッド パラメーターにはパス uri が含まれていないため、カスタム jibx プロバイダーは、Java 型をマーシャリングするために使用する必要があるメッセージ バインディング バージョンを認識できません。これを回避する方法はありますか?
java - JAX-RSをWebフレームワークとして使用することは可能ですか?
私は最近、JavaプラットフォームとRESTfulスタイルのWeb開発が本当に好きなので、JAX-RSを調べています。JAX-RSを使用してRESTfulWebサービスを作成する方法について多くのことを読みましたが、JAX-RSを使用してRESTful Webサイトを作成することは可能ですか?より具体的には、JAX-RSをコントローラーとして使用して(サーバーから必要なデータを取得するため)、制御をビューエンジンに転送して、適切なHTMLをレンダリングすることは可能ですか?
私はぐるぐる回っていますが、これを行う方法を示すリソースは見つかりませんでした。
洞察/ヘルプをありがとう。
jax-rs - JAX-RSの別のExceptionMapperからExceptionMapperを呼び出す
私のRESTEasyアプリケーションjava.lang.reflect.UndeclaredThrowableException
では、throws句で例外を宣言していないメソッドからチェックされた例外がスローされているため、が発生しています。
だから私は書いていUndeclaredThrowableExceptionMapper
ます。UndeclaredThrowableException
ラップは実際の例外をラップします。e.getCause()
私はそれを取得するために呼び出します。
それから私はそれを投げることができますか、それともどういうわけかExceptionMapper
それを処理するための適切なものを探すことができますか?
java - ジャージーを使用してJSONで@で名前が返されるのはなぜですか
Jersey JAX-RSの一部であるJAXBを使用しています。出力タイプに JSON を要求すると、すべての属性名が次のようにアスタリスクで始まります。
このオブジェクト。
となり、
では、なぜ名前に @ が含まれているのでしょうか。
java - 例外マッパーを使用する JAX-RS
スローされたアプリケーション例外をオブジェクト javax.ws.rs.ext.ExceptionMapper
にマップする実装を作成できることを読みました。Response
オブジェクトを永続化するときに電話の長さが 20 文字を超える場合に例外をスローする簡単な例を作成しました。例外が HTTP 400 (Bad Request) 応答にマップされることを期待しています。ただし、HTTP 500 (内部サーバー エラー) が発生し、次の例外が発生します。
私は何が欠けていますか?どんなアドバイスでも大歓迎です。
例外マッパー:
例外クラス:
エンティティ クラス:
サービス:
jpa - NPE が JAX-RS でマーシャリング エンティティをスロー
JPA エンティティ クラスを利用する JAX-RS Web サービスがあります。次のようなリソース クラスがあります。
サービスを実行してエンティティに対して get 呼び出しを行うと、次のエラーが発生します。
スタック トレースのどこにも、私のクラスが参照されていません。また、"Exiting getMyEntity"
ステートメントは例外の前にログに記録されます。
何が NPE をスローしているのか、またはこれをデバッグする方法がわかりません。
このエラーが発生する前に[com.sun.istack.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML:
、JPA (EclipseLink) エンティティ クラスから を取得していましたが、MOXy @XmlInverseReference アノテーションを親 getter メソッドの子クラスに追加しました。
この例外をスローしている可能性があるものについて何か考えはありますか?