問題タブ [jaxb2]
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 - xml を春の REST エンドポイントに投稿しても、関連する Java オブジェクトにアンマーシャリングされない
xsd が指定されているプロジェクトがあります。xjc コンパイラを使用して Java クラスを生成します。次に、クラスに XmlRootElement 属性で注釈を付けます。AnnotationMethodHandlerAdapter で Jaxb2 マーシャリング/アンマーシャリング Bean を使用して sevlet を構成しました。名前空間なしで xml を送信すると、415 エラーが発生します。
ソースコードは次のファイルです - web.xml
ファイル - dispatcher-servlet.xml
ファイル - user.xsd
このコマンドを使用して、上記の xsd の Java クラスを生成しました。
このコマンドの出力は
User.java に @XmlRootElement(name="user") のアノテーションを付けました。
ファイル - UserService.java
このcurlコマンドでREST APIをテストしました
出力は
誰かが私が間違っているところを教えてください。
ありがとう
java - 標準のJAXB2POJOでネストされた要素をバインドする
私は次のドキュメントモデル構造を持っています。
node1とnode2を注釈付きのPOJOにマップする方法を理解しましたが、これらは完全に機能します。ただし、groupOfNodes内のネストされたノードをgroupNodeのリストにバインドする方法に固執しています。これは私がこれまでに持っているものです。java docsで利用可能な注釈リストを調べたところ、それが私が望んでいるものに最も近い可能性があることがわかりましたが、このコンテキストでそれらを使用する方法がわかりません@XmlList
。@XmlElementWrapper
私が置く@XmlElementWrapper
と、groupNodesListにnullが入ります。@XmlListを配置すると、それが。GroupNode
の下に配置される複合型であるという例外が発生し@XmlList
ます。
代わりにXPathを使用する必要がありますか?可能であれば、標準のJAXB2を使用したコード例をご覧ください。そうでなければ、いくつかのヒントも素晴らしいでしょう。
それは有り難いです!
jax-ws - ポリモフィズムを使用した WebResult アノテーションと RequestWrapper アノテーション
次のようなクラスがあります。
そして、それを継承する 2 つのクラス:
それから私はそのようなSEIを持っています:
そして、私の応答ラッパー クラスは次のようになります。
}
したがって、ここでの問題は、JAXB を介して ResponseWrapper を直接テストし、TallPerson オブジェクトを設定すると、そのオブジェクトを TallPerson に固有の XML に正しくマーシャリングすることです (SmallPerson でも同じことができます)。
問題は、これを戦争に展開してサービスを有効にすると、TallPerson の結果が返されたときに、空のメッセージを除いて Web サービス呼び出しから何も受信しないことです。実際、<getPersonByIdResponse> のレスポンス ラッパー ルート XML 要素も受信しません。
したがって、私の問題は、多態的な要求または応答オブジェクト (この場合は応答オブジェクト) がある場合、WebResult の名前/ターゲット名前空間が ResponseWrapper 内のパラメーターにどのように影響するかです。私の場合、XmlElementRefs を利用して、基本オブジェクト Person を TallPerson または SmallPerson に正しくマーシャリングしていますが、これは WebResult の親クラス Person の名前空間/名前とどのように関連していますか? 競合が原因で XML 応答が生成されないかどうかはわかりません。
ありがとう
java - JAXB マーシャラー & アンマーシャラー
次のように、JAXB マーシャラーを使用してオブジェクトを System.out にマーシャリングします。
次に、出力を x.xml ファイルに次のように保存します。
次に、この x.xml からスキーマ ファイルを x.xsd として生成しました。
最後に、次のように x.xsd に対して x.xml ファイルをアンマーシャリングして検証しようとしました。
しかし、それは不平を言った:
ここで何が悪いのか誰か知っていますか?どうもありがとう!
java - JAXB 表記を使用して入れ子構造を作成する
上記の XML 入力を作成するために、既存の Java クラスで jaxb アノテーションを使用したいのですが、Java クラスに基づいてネストされた xml 構造を作成する方法がわかりません。
java - JAXB 2.x:ターゲットクラスを知らずにXMLを非整列化する方法は?
これを行う方法があれば、最もエレガントなものを知りたいです。ここに質問があります: - 抽象クラス Z があると仮定しましょう - Z から継承された 2 つのクラス、A と B という名前があります。
次のように、任意のインスタンス (A または B) をマーシャリングします。
結果の XML で、それがどの種類のインスタンス (A または B) であったかがわかります。
さて、どのように非整列化しますか
UnmarshalException というメッセージが表示されます
javax.xml.bind.UnmarshalException"
では、Z のインスタンスを取得し、アンマーシャリング後にテストできるようにアンマーシャリングを行うにはどうすればよいでしょうか? たとえば、z instanceof A の場合... z instanceof B の場合、何か他のもの... など。
アイデアや解決策をありがとう。
MOXy を JAXB Impl として JRE1.6 を使用しています。
java - オブジェクトをJAXBElementに変換します
次のコードでJAXBElementを返すメソッドを実装したい
上記のクラスでJAXBElementを返すメソッドを作成する方法がわかりません
例えば
validation - Jaxb2カスタム検証メッセージは可能ですか?
JaxB 2.xでカスタム検証メッセージを実行する方法を知っている人はいますか?私の必要性は、どのタグまたはオブジェクトプロパティがエラーを引き起こしたかを知ることです。すでにカスタムValidationEventHandlerがありますが、handleEventメソッドのValidationEventイベントパラメーターはノード情報を取得せず、XMLドキュメントのエラーに関連する行と列のみを取得します。私の意図は、よりユーザーフレンドリーなものでアンマーシャリングエラーメッセージをカスタマイズすることです。それを行う方法はありますか?
ありがとう!
sockets - ソケットを閉じずにソケットからオブジェクトをマーシャリングするにはどうすればよいですか? (ソケット経由の入力ストリームからの JAXB マーシャリング)
送信後にソケットを閉じずに、サーバーとクライアント間のソケット接続を介してxmlドキュメントを送信するために、さまざまな方法を試しました(別のドキュメントを送信するために、出力ストリームを開いたままにしてください)。うまくいくはずだと主張しているサイトをいくつか見つけたので、彼らが提案するすべての方法で試してみましたが、うまくいく方法は見つかりませんでした. (それは私がやりたいことと同じことを説明しています: http://jaxb.java.net/guide/Designing_a_client_server_protocol_in_XML.html )
(@code marsh.marshal(element, xsw);) を送信した後にソケットを閉じている場合、次のコードは完全に機能しますが、ソケットを開いたままにしようとすると、サーバー側でアンマーシャリングでスタックします。
クライアント側....
サーバ側....
java - jax-rsを使用してBean構造を別のスキーマにマップする方法
私はこの豆を持っています
シリアル化したいのですが
(またはjsonとして)
できればjaxbアノテーションを使用して、それをどのように行う必要がありますか?
私はジャージを使用していますが、答えはそれに固有である必要はありません。