問題タブ [moxy]
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.
jaxb - MOXy @XmlPath は無視されました
String sourceAddress と int port の 2 つのフィールドを持つ非常に単純なクラスがあります。
jaxb のデフォルトの sourceAddress と sourcePort の代わりに、source/address ノードと source/port ノードにそれらをマッピングしたいと考えています。
だから私は MOXy @XmlPath アノテーションを使用します。
問題は、注釈が無視され、「jaxb default」xml ファイルを取得することです。
助けてくれてありがとうアゴスティーノ
maven-2 - Maven-3でMOXyを使用してXSDからJavaを生成するにはどうすればよいですか?
Maven-3でMOXyを使用してXSDからJavaを生成する最も簡単で最良の方法は何ですか?参照JAXBインターフェースには優れたMavenプラグインがありますが、MOXyをサポートしていないようです。
誰かが提供する具体的なものはありますか?(私はant-script、またはプラグイン、または...を書くことができることを知っています)
java - JAXB / MOXy:要素が欠落しているときにXmlElementWrapperセッターを呼び出さないのですか?
@XmlElementWrapper(name = "foos")と@XmlElement(name = "foo")の両方で注釈が付けられたクラスのリストセッターがあります。
<foos> </foos>または<foo/>要素を持たないXMLをアンマーシャルすると、セッターが呼び出され、空のリストが渡されます。以下を取得する方法はありますか?:
- <foos />がない場合は、セッターを呼び出さないでください。または、セッターを呼び出す必要がある場合は、nullを渡します。
- <foos />が存在するが空の場合、空のリストをセッターに渡します。
- <foos>に1つ以上の子<foo/>要素がある場合、入力済みリストを渡します。
java - MOXyとの一貫性のないアンマーシャリング
MOXyを使用して比較的単純なXMLドキュメントをアンマーシャリングしていますが、動作に一貫性がありません。このドキュメントは、基本情報(名前と日付)とそれに続くレコードのリストを含む2つの要素で構成されています。問題は、名前と日付が毎回正しくアンマーシャリングされていることですが、レコードを取得しないことがよくあります(これは、同じ静的データを繰り返し使用する単体テストで検証されていますが、予測可能性が観察されずに合格および不合格になっています)。すべてのロギングとアサーションは、6つのレコードすべてを取得する場合と、0を取得する場合(他の数値は取得しない場合)を除いて、すべてが良好に見えることを検証します。この一貫性のない振る舞いは、私にはまったく意味がありません、何かアイデアはありますか?適切なアンマーシャリングを保証する注釈などがありませんか?
eclipselinkライブラリのいくつかの異なるバージョンを試しましたが、すべて同じ結果になりました(現在、eclipselink mavenリポジトリから2.2.0をロードしています)。
レポートクラス
レコードクラス パッケージcom.company.report_parser.model;
サンプルデータ
xml - EclipseLinkのMOXyJAXB実装でJAXB2Basicsプラグインを使用できますか?そうでない場合、代替手段はありますか?
最終的には、JAXBでhashCodeとequalsの実装を生成する必要があります。JAXB2 Basicsプラグインはそれを行い、JDKのMetro JAXB実装では正常に機能しますが、MOXyでは失敗します。
私は得る:
java.lang.IllegalArgumentException at org.eclipse.persistence.jaxb.JAXBBinder.updateXML(JAXBBinder.java:131)at org.eclipse.persistence.jaxb.JAXBBinder.updateXML(JAXBBinder.java:126)
それ以外の場合、MOXyは正常に機能します。つまり、equalsおよびhashCode生成コードを削除すれば、すべてが正常に機能します。
generics - ネストされた @XmlJavaTypeAdapter アノテーションは、eclispelink の使用時にネストされたオブジェクトが一般的な場所で無視されます
オブジェクトツリーをマーシャリングするとき、私は@XmlJavaTypeAdapter
. 一部のアダプターは、それ自体が@XmlJavaTypeAdapter
アノテーションを持つクラスのオブジェクトを返します。これは、websphere 7 にパッケージ化された JAXB 実装を使用したときは正常に機能しましたが、最初のアダプターによって返されたオブジェクトorg.eclipse.persistence.jaxb.JAXBContextFactory
の@XmlJavaTypeAdapter
注釈を使用すると無視されます。これは既知の問題ですか、それとも何か間違っていますか?
根
あ
B
ハ
G
次に、アダプターA
...
そしてジェネリック型のアダプター
クラスでマーシャリングする場合com.sun.xml.bind.v2.runtime.JAXBContextImpl
でマーシャリングするとorg.eclipse.persistence.jaxb.JAXBContext
問題はジェネリック型にあると思います。目標は、ジェネリック型がマーシャリングされるのをスキップし、 marshal だけT
でなく、 processT
の注釈がある場合はそれをスキップすることです。
json - EclipseLink MOXy (JAXB)を使用してサブクラスをJSONにマーシャリングするときに、「@type」エントリを非表示にする可能性はありますか?
JAX-RS ベースの RESTful Web サービスを開発しようとしており、Web サービスの JSON 応答を自動的に生成するために MOXy (JAXB) を使用しています。
すべてがクールですが、Web サービスは JavaScript ベースの Web アプリケーションのバックエンドになるため、一般にアクセス可能になるため、クラス名などの特定の詳細を公開したくありません。
しかし、特定の条件下では、MOXy が "@type" エントリをマーシャリングされた文字列に埋め込み、このエントリの後にマーシャリングされたばかりのオブジェクトのクラス名が続くことに気付きました。
特に、拡張クラスのインスタンスをマーシャリングするときに、MOXy がこのように動作することに気付きました。
次のスーパークラス「MyBasicResponse」を仮定します
そして、この特化(拡張)クラス「MySpecialResponse」
したがって、MyBasicResponse オブジェクトのマーシャリングされた文字列は次のとおりです。
(大丈夫!)
しかし、MySpecialResponse オブジェクトのマーシャリングされた文字列は次のようになります。
剥がす方法はありますか
私の応答のうち?
jaxb - JAXB: 修飾された属性は、デフォルトの名前空間 xmlns="" を無効にしますか?
私が使うとき@XmlSchema(attributeFormDefault = XmlNsForm.QUALIFIED, ...)
また@XmlAttribute(namespace = "sample.com/y", ...)
JAXB は無視します@XmlSchema(namespace = "sample.com/x", ...)
そして代わりに:
次のようなものを生成します。
これは予期される動作ですか? これを修正する方法はありますか?
jaxb - ジャージでMOXyの@XmlCDATAアノテーションを使用する
ジャージで記述されたRESTWebサービスに取り組んでおり、CDATAセクションを含むXMLを出力しようとしています。JAXBのリファレンス実装がそれをサポートしていないことを理解しているので、EclipseLinkのMOXyをダウンロードし、@XmlCDATAアノテーションを機能させようとしています。
私のJAXBマップされたBeanは次のようになります
そして、クラスファイルと一緒にjaxb.properties
ファイルがあります。com/me/entities
プロパティファイルには
初期化。ファクトリクラス名をナンセンスに置き換えるとアプリが機能しなくなるため、正常に読み込まれると確信しています。また、自分でJAXBContextを作成するファイルを明示的にマーシャリングすることは問題なく機能するため、問題はジャージに関連しているようです。これによると、私のセットアップは問題ありませんが、ジャージリソースがMyBeanのインスタンスを返す場合
返されるものにはCDATAが含まれていませんが、次のようになります。
私は何が間違っているのですか?
xml - EclipseLink MOXy を動作させることができません
私は JAXB を初めて使用し、EclipseLink MOXy を使用してデフォルトのネームスペース プレフィックスを変更したいと考えています。私の package-info.java には、次のコード行があります。
そして、私の jaxb.properties ファイルには次の行があります。
eclipselink.jar を CLASSPATH に追加しました。package-info.java ファイルと jaxb.properties ファイルの両方がモデル クラスと同じパッケージにありますが、プログラムを実行すると、次のエラー メッセージが表示されます。
EclipseLink バージョン 2.3.0 および 2.0.2 でこれを試しましたが、同じエラー メッセージが表示されます。何が問題なのか知っている人はいますか?
よろしくお願いします