問題タブ [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 - JAXB 2.0 検証が機能しない
私はJAXB 2.0に取り組んでおり、現在、期待どおりに機能していないため、検証部分に取り組んでいます。以下は検証コードです
そして、ここにメソッドへの呼び出しがあります
私はXSDごとに必須フィールドとしていくつかのフィールドを持っていますが、それらを削除してもエラーが発生しますが、何も与えず、xmlファイルを対応するオブジェクトに解析すると、何か問題が発生する可能性がありますか?
これがXSDの一部です
および生成された Java ファイル
私はxmlファイルからstateIDを削除していましたが、まだ検証部分にアラームはありません
前もって感謝します
java - Java xml シリアライゼーションの null 処理
オブジェクトをxmlにシリアライズするためにJAXB2を使用しています。
バッキングオブジェクトで満たされていない場合でも、次の例のようにオブジェクト構造全体を強制的に作成する方法はありますか?
これは、担当者のプロパティが設定されていなくても、私の意図した結果です。
シリアル化には次のコードを使用します。
java - JAXBが複数のメソッド名を生成する方法をどのようにカスタマイズしますか?
JAXBを使用してJavaクラスを生成していますが、生成された複数のメソッド名が正しくない場合がいくつかあります。たとえば、私getPhysicians
たちが取得していると予想される場所getPhysicien
。JAXBが特定のメソッドを複数化する方法をどのようにカスタマイズしますか?
スキーマ:
生成されたJavaコード:
アップデート
これはブレイズによって答えられました。ただし、XMLスキーマでJAXBのカスタマイズなどの懸念事項を混在させたくない。したがって、同じ設定をお持ちの方のために、Blaiseが提案したものと同じことを実現し、JAXBのカスタマイズをスキーマから除外するJAXBバインディングファイルを次に示します。
java - 注釈付きのエンドポイントを使用すると、スプリングがアダプタを見つけられません
私はJava6とspring-wsを使用して、BusquedaRequest Jaxbオブジェクトの形式で2つのパラメーターを受け取り、同じオブジェクトを返す非常に単純なWebサービスを作成しています。
オブジェクトはxjcコンパイラで作成されており、マシャラーとしてJaxb2Marshallerを使用し、着信xmlに変換して送信するためにGenericMarshallingMethodEndpointAdapterを使用しています。AbstractMarshallingPayloadEndpointクラスを拡張するときにこれが機能していましたが、Endpointおよびペイロードアノテーションの使用に切り替えると、常に失敗します。
Webサービスは正常に起動しますが、クライアントにアクセスすると、この例外が発生します。
私が行ったxjcコンパイラを使用してオブジェクトをコンパイルすることを提案するこの質問への応答を見てきました。また、アダプタがspring-ws-servlet.xmlで定義されていないという提案もありましたが、これも私が行いました。以下に定義されているspring-ws-servlet.xmlを参照してください。
クラスエンドポイントは次のとおりです。
BusqeudaRequestオブジェクトを生成したxsdは次のとおりです。
誰かが私がすでに実装した提案を拡張する考えを持っていますか?
java - JAXB に @XmlElement(default='something') アノテーション パラメータを認識させる方法は?
JAXB 2.1 RI を使用して、要素の値が固定された XML を生成できませんでした。xjc を使用して XML バインド コードを生成し、結果をマーシャリングします。
<xs:attribute fixed='something'/>
および JAXB カスタマイズ プロパティを使用する属性に対して機能しますfixedAttributeAsConstantProperty
。要素については、同じことを行う方法はないと考えました。それともありますか?
<xs:element default='something'/>
回避策として、に変換されるwhichを使用しまし@XmlElement(default='something')
た。default
これで、マーシャラーにパラメーターを解釈して、対応するコンテンツを持つ要素を生成するように何らかの方法で伝えることができると思います<element>something</element>
.
標準および RI ベンダー固有のマーシャラー構成プロパティーを調べましたが、有用なものは見つかりませんでした。似たようなことをする xjc プラグインがあるようですが [1]、そうするための標準的な JAXB の方法がないとしたら、私はちょっと驚きます。
どんなポインタでも大歓迎です、ありがとう。
[1] http://fisheye5.cenqua.com/browse/~raw,r=1.5/jaxb2-commons/www/default-value/index.html
spring - JAXBアンマーシャリング例外:SpringWebservice1.0.4の場合の予期しない要素
私はspringwebservicecleintの例を書きました。これはspringws1.5で正常に動作していますが、springws1.0.4で実行すると例外を下回ります。この例外が発生する理由と解決方法を教えてください。春のバージョンは2.0.4なので、ダウンバージョンのみを使用する必要があります。できる限り早くご回答ください。
次の例を使用してコーディングし
ましたhttp://justcompiled.blogspot.com/2010/11/web-service-client-with-spring-ws.html
次の変更を行いました
。jbossbinwsconsume
からバッチファイルを使用してクラスを生成します。瓶を保管しました
のjboss/../lib
以下は私の春の設定ファイルにあります:
今、私はすべてを交換して配置しましたwebservice 1.5.0 jar
。私がこの問題に直面しているまで、以前はうまくいきました。私はあまりチャネグをしていません。私のコードで何か邪魔されているものはありますか?チェスクする方法..これを追跡する方法。どんな助けでも大歓迎です。私のObjectFactoryは単純です:
}
以下はクラスレベルのアノテーションです
応答:
spring - Spring3、JAXB2、Java6、NamespacePrefixMapperの質問
JAXB2を使用して結果をマーシャリングするTomcat6でホストされる単純なSpring3、Hibernate3 /(JPA2)、RESTfulサービスを構築しました。(注釈付きのpojoを使用します。)特定の名前空間プレフィックスを使用する必要があったため、カスタムのcom.sun.xml.bind.marshaller.NamespacePrefixMapperを作成しました。アプリケーションにJAXB2RIjarを含めましたが、すべて正常に機能しました。
次に、誰かがそれは素晴らしいと言いました。WebLogic11g(10.3.3)でもホストする必要があります。問題ありません。アプリケーションjarを優先するように特別なweblogicデプロイメント記述子を作成し、persistence.xmlの名前を変更し、JPA2jarを使用してWARをEARにラップしました。それはほとんどうまくいきました。
残念ながら、WebLogicサーバーは、JAXBも使用するカスタムセキュリティレルムを実行し、アプリケーションとの競合を引き起こします。そこで、アプリからJAXB jarを削除すると、WebLogicで正常に実行されます。もちろん、JAXB jarをTomcatに追加しない限り、Tomcatでは実行されなくなります。それは避けたいです。
だから私の質問...私は、太陽の「内部」JAXB2実装の使用とアプリでのRIのパッケージ化に関する多くの意見/意見の相違を含むstackoverflowに関するかなりの数の投稿を読みました。この問題に対する明確な解決策はまだありませんか?スタックは、JAXB2 RIを含めずに名前空間プレフィックスをカスタムマップする別の方法をサポートしていますか?Java6の「内部」JAXBNamespacePrefixMapperを安全に使用できますか、それともさまざまなJavaリリースで使用できますか?Spring3は別のソリューションを提供しますか?Java6 JAXB2実装の実話は何ですか?それはSun(Oracle)の内部使用のためだけにありますか?
ありがとう。
xml - オブジェクトの関連付けの方向を逆にする必要がある場合のJavaオブジェクトグラフ->xml
私が取り組んでいるJavaアプリケーションには、以下のような関係のオブジェクトがあります。実際のアプリケーションでは、両方のオブジェクトがJPAエンティティです。
アプリケーションには、次の形式のxmlを作成するための要件があります。
そのため、オブジェクトグラフが、xmlでの表現方法とは逆の方向でThingとUnderlyingの関係を表現している状況があります。
JAXBを使用してxmlを作成することを期待していますが、理想的には、xml内の関連付けを反映するために新しいオブジェクト階層を作成する必要はありません。現在のフォームのエンティティから必要なフォームのxmlを作成する方法はありますか(xmlアノテーションなどを使用して)?私はJAXBを使用した経験はありませんが、私が行った限られた調査から、関連付けの方向を簡単な方法で逆にすることはできないようです。任意のヘルプ/アドバイスをいただければ幸いです。提案されているもう1つのオプションは、XLSTを使用してxmlを正しい形式に変換することです。このトピックについてはまだ調査を行っていませんが、さらに情報があれば質問に追加します。
ありがとう、
マット。
java - JAXB 2.x:親クラスからのXmlElementアノテーションをオーバーライドする方法-ミッションインポッシブル?
なぜこれが不可能なのですか?とてもシンプルに見えますが、期待どおりに動作しません。
概要:クラスAは集約されたDataA Beanを使用しますが、クラスB(クラスAのサブクラス)は集約されたDataB Beanを使用します(DataBはDataAを拡張します)。
私はこれらのテストクラスを作成して、私の質問を視覚化して説明しました。
クラスA:
およびそのDataAクラス(すべてのフィールドがマーシャリングされるようにFIELDアノテーションを使用しました):
そして今、クラスB(クラスAのサブクラス):私の目標は、Aの機能を再利用し、DataBBeanを使用してDataABeanのプロパティを再利用することです。
対応するDataBBeanは次のようになります。
ここで、クラスAのインスタンスをマーシャルすると、次の出力が得られます。
クラスBのインスタンスをマーシャルすると、まったく同じ結果が得られます。
ただし、string3もマーシャリングされると予想していましたが、これはBeanDataAのプロパティを書き込んでいるだけです。なぜ?これは、OOPの観点から考えると、実際には直感的ではありません。
クラスBにも@XmlElementアノテーションを設定すると、次のようになります。
...次に、プロパティは、親クラスと子クラスによって一度注釈が付けられるため、2回マーシャリングされます。これは私が望まないことでもあります:
出力は次のとおりです。
結果としてJAXBに期待したのは、次のXMLです。
JAXBを微調整して期待される結果を生成する方法のヒントはありますか?フィードバックをありがとうございます。
java - Jaxb 2.0 スキーマ検証の問題
私は Jaxb 2.x を使用しており、次のチュートリアルを使用して、指定された XSD で XML ドキュメントを検証しようとしていました。
彼女は私が書いたコードです
および私の XMLErrorHanlder クラスには次の署名があります
警告と致命的なコードは削除され、XSD を使用して XML を検証していますが、すべてのエラーと警告をコンソールに出力したいときに、最初に発生したエラーのみが表示されます。
どこが間違っているのかわかりません。これに関するヘルプが役立ちます
ここのEdit1 は XSD ファイルの一部です
XMLファイルは
いくつかの研究開発を行った後の私の仮定は、XSD構造または生成されたXMLに問題があるということですが、それについてはよくわかりません