問題タブ [jaxb]
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 - アンマーシャリング中に ElementNSImpl から独自の型への断続的な ClassCastException
マーシャリングされていないオブジェクトのリストを反復処理しようとするとClassCastExceptions が発生することがあり、追跡が非常に困難な問題が発生しています。重要なビットは時々、再起動後に特定のコードが正常に動作することです。これは、同時実行/タイミング/競合状態の方向を示しているようです。JAXBContext も、マーシャラーとアンマーシャラーも同時に使用されていないことを確認できます。ロックによってそれらへのアクセスをシリアル化するところまで行きました。
ただし、Spring DM を介して個々のバンドルが非同期に初期化される OSGi プラットフォームで実行しているため、2 つの異なるバンドルが同時に JAXBContext を作成している可能性があります。
いずれにせよ、これらの断続的なClassCastExceptions を引き起こす可能性のある原因についての説明へのポインタをいただければ幸いです。コード自体は正常に動作しているが、何らかの外部要因が動作に影響を与えているように見えることを示すため、断続的であることが重要です。
例外の具体例を次に示します (会社固有のものを削除したことに注意してください)。
180行目のそのメソッドは、アンマーシャリングされたオブジェクト内のTunnelTypeオブジェクトのコレクションをループするfor()コンストラクトです(アンマーシャリングは問題なく機能します)。
実際のオブジェクトのアンマーシャリングが正常に行われたとすると、JAXB が ElementNSImpl オブジェクトをネストされたコレクション内に残すことは物理的に可能でしょうか?
実行時環境:
- JAXB2.1
- OSGi
- 春のDM
- JAXBContext は、整列化/非整列化されるクラスを含むバンドルの ClassLoader で初期化されます
java - JAXB を使用してスキーマの拡張性を確保する方法
Glassfish v2 で Metro Web サービスの一部として JAXB を使用している場合、JAXB に次を追加するように指示するにはどうすればよいですか。
生成された複雑なタイプにタグを付けて、将来変更を加えて応答オブジェクトに要素または属性を追加しても、現在のクライアントが壊れないようにします。
JAXB のドキュメントはやや不足しているようです。
java - JAXB XmlID および XmlIDREF アノテーション (スキーマから Java)
CXF を使用して Web サービスを公開しています。@XmlID および @XmlIDREF JAXB アノテーションを使用して、マーシャリング/アンマーシャリング中にオブジェクト グラフの参照整合性を維持しています。
WSDL には、これを表す xs:id および xs:idref 属性を持つ要素が正しく含まれています。
サーバー側では、すべてがうまく機能します。@XmlIDREF で注釈が付けられた型のインスタンスは、@XmlID 注釈で注釈が付けられたものと同じインスタンス (== の場合) です。
ただし、WSDLToJava でクライアントを生成すると、参照 (@XmlIDREF で注釈が付けられたもの) は java.lang.Object 型になります。
参照の型が java.lang.String (参照される型の ID と一致するため) または参照される型自体と同じになるように、JAXB バインディングをカスタマイズする方法はありますか?
java - Java6およびJaxB2.1
Java6の元のリリースにはJAXB2が付属していましたが、「後の」Java6リリースにはJAXB2.1が付属していると言われています。
JAXB2.1に同梱されたJava6の最初のバージョンが何であったかを誰かが知っていますか?
java - JAXB ドキュメントの注釈
JAXB @XMLRootElement アノテーションを持つ次のJavaクラスがあります
xsdスキーマを生成すると、このxmlフラグメントが生成されます
address1 フィールドのドキュメントの詳細が xs:annotation/xs:documentation 要素として最終的なスキーマに含まれるように、JAXB アノテーションを使用することは可能ですか?
java - カスタム JAXB アノテーションの作成
xsd スキーマで xs:annotation/xs:documentation 要素の生成をサポートするために、独自のカスタム JAXB 注釈処理クラスを作成する方法について、何か推奨事項はありますか? 「ドキュメント」属性を含む新しい Java アノテーション「@XmlAnnotation」を作成したいと思います。次に、これらのクラスを、クラスパスを介して JAXB スキーマ ジェネレーターで使用できるようにします。スキーマ ジェネレーターは、このサンプル Java コードを取得します。
この xsd スキーマを作成します
既存の @XmlElement 注釈クラスから拡張し、追加のドキュメント属性のサポートを追加する方が簡単でしょうか?
java - Web サービスの呼び出し中に xml の応答と要求をインターセプトする方法は?
Java Webサービスメソッドの呼び出し中に送信されたxmlリクエストと、応答で与えられたxmlを傍受するためのきちんとした方法があるのだろうか?これらのxmlを標準出力に出力したくはありませんが、文字列で「キャッチ」します。
java - CSV をモデルにマッピングする
Java で単純な CSV から XML へのプロセッサを作成しています。
JAXB を使用して、DTD から Java でモデルを生成しています。CSV 形式をこのモデルに処理してから、DTD に準拠する XML にマーシャリングする必要があります。私は JAXB を使用して、Java モデルから XML にデータをマーホールしています。CSV-Model マッピングを自分で作成する必要があります。
現時点では、CSV を読み取ってコード内のモデルに割り当てることにより、CSV を Java モデルに直接マッピングする以外に良い解決策は考えられません。
あなたが考えることができるこれに対するよりエレガントな解決策はありますか? おそらく再利用可能なマッピングライブラリなどでしょうか?
前もって感謝します。
java - JAXB でのカスタムのシリアル化
.NET で IXmlSerializable を使用して可能なのと同じ方法で、JAXB で XML シリアル化をカスタマイズする方法はありますか? (つまり、XmlReader/Writer に相当するものを使用して、オブジェクトのシリアル化を直接制御する機能)。
私は XmlAdapter と @XmlJavaTypeAdapter を見てきましたが、それらは型をシリアライズ可能なフォームとの間で変換するために使用されているように見えますが、これは私が望むものではありません。
更新:特に、内部 XML を逆シリアル化する方法をプログラムで正確に決定するルート オブジェクトの逆シリアル化をカスタマイズしたいと思います (たとえば、既知の型の特定のセットで jaxb unmarshaller を作成します)。
更新: この問題を解決する方法を見つけましたが、これは非常に厄介なハックであるため、おそらく他の投稿者によって提案された解決策の 1 つを使用します。
xsd - 外部名前空間要素を保持しながら、TRAX NGをtrangを使用してXSDに変換する(JAXBで使用するため)
JAXBで使用trang
するためにRELAXNG.rngファイルをXMLスキーマ.xsdファイルに変換するために使用しています。属性/要素を.rngファイルに入れて.xsdファイルに表示させる方法はありますか?JAXB設定に使用する外部.xjbファイルがありますが、スキーマ自体と非常に密接に結合しているJAXB設定がいくつかあり、それらを(何らかの方法で).rngファイルに入れる方が理にかなっているようです。 .xjbファイル。
何かアドバイス?