問題タブ [jaxb2-basics]

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.

0 投票する
1 に答える
587 参照

java - JAXB2 の基本 Mergeable プラグイン: カスタムの Merge Strategy の設定

次のように、ant スクリプトで JAXB2 Basics 'Mergeable' プラグインを正常にアクティブ化しました。

それは機能しており、生成されたクラスに「MergeFrom」インターフェースを正しく追加しています。

私の問題は、'mergeStrategyClass' 引数を使用してカスタム マージ戦略を指定しようとするたびに、'MergeFrom' インターフェイスが生成されたクラスから完全に消えてしまうことです。私が使用している構文は次のとおりです。

これは、JAXB2 Basics Web サイトの例から直接引用したものです。(意図的にクラスのスペルを間違えると、ClassNotFoundExceptionが発生するため、クラスパスは問題ないようです)

Ant ビルドによってスローされるエラーはなく、欠落しているインターフェイスを除いて、クラスは正常に生成されます。

0 投票する
1 に答える
2794 参照

java - jaxb2-basicsは、汎用オブジェクトの型変数のインターフェースを指定するように構成できますか?

私はjax-wsのwsimportを使用してWSDLからJavaクラスを生成しています。私はjaxb2-basicsプラグインを使用して、toString、equals、hashCode、copy、およびmergeメソッドを作成しています。

生成されたクラスに、コードを変更する必要がある場合に実装からコードを分離するためのインターフェイスを実装してもらいたいと思います。

jaxb2の機能を使用して、指定されたインターフェイスを実装するクラスを生成しますが、成功は限られています。クラスがインターフェースを実装するだけでは不十分です。他の生成されたクラスで構成される生成されたクラスが、それらのオブジェクトを参照するときに、実装ではなくインターフェースを使用するようにしたい。

外部バインディングファイルを使用して、クラスが実装する必要のあるインターフェイスを定義しています。

たとえば、Busというクラスがあり、その中にPersonというクラスがある場合、BusにIBusを実装し、PersonにIPersonを実装し、BusにPersonではなくIPerson型のメンバー変数を持たせます。

バインディングファイルにあるものは機能しています。

ただし、BusにList of Personオブジェクトがある場合、wsimportを取得して、ListofIPersonオブジェクトを定義するBusのクラスを生成できません。

これが私が使用したwsdlの例です(愚かで愚かな例ですが、それは意味を理解しています):

これが私のpomです:

jaxb2-basicsを取得して、型変数がjaxbバインディングファイルで指定されている汎用オブジェクトを生成できるかどうかを誰かが知っていますか?

0 投票する
1 に答える
12975 参照

maven - maven-jaxb2-pluginは出力を生成していません

私はMavenを初めて使用し、それを使用してXSDからJavaクラスを生成しようとしています。

私のxsdファイルはsrc/main / resources/xsdにあります

依存関係にはこれがありますが、Java 1.6を使用しているので、必要ないと思います。

ビルドセクションで私は持っています

しかし、実行しても何も得られません。出力を確認するために-eフラグと-Xフラグを指定してmvncompileとgenerate-sourcesを実行しましたが、ターゲットが呼び出されていないようです。何か案は ?

0 投票する
2 に答える
1028 参照

java - 提供されたインターフェイスから継承するように XSD の特定のクラスのみに指示する方法は?

これを別の方法で尋ねる他の質問をいくつか見つけましたが、それらの質問に対する答えはどれも機能しません。彼らが参照しているサイトは死んでいるか、JAXB2 用ではありません。

私が必要としているのは、生成されたクラスのいくつかが共通のインターフェースから継承することです。それらはすべて.getName()メソッドを持っているからです。

if(o instanceof XXX)タイプごとに巨大なブロックを持たなければならないのではなく、ブロックにInterfaceキャストして を呼び出すことで、このコモンに対してテストするだけ.getName()です。

これが私のインターフェースです

そして、これが私の.xjbバインディングファイルに追加しているものです

生成されたクラスに何も追加していません。

このインターフェイスをリストに追加するための魔法の呪文は何ですか?

0 投票する
7 に答える
14997 参照

java - Mojo Jaxb2 mavenプラグインを使用してJavaクラスを作成するときにhashCode()とequals()を生成する

私が取り組んでいるコードは、jaxb2-maven-pluginfromを使用しorg.codehaus.mojoてXSDスキーマからJavaクラスを生成しています。equals()それらのクラスのメソッドとメソッドを自動的に実装する方法を探していますがhashCode()、方法がないようです。それを行う他のJAXB2Mavenプラグイン(たとえばhttp://confluence.highsource.org/display/J2B/Home)があることは知っていますが、以前にこの問題に遭遇した人がいるかどうか、またそれを修正します。xjcゴールを使用してクラスを生成しています。

0 投票する
2 に答える
14295 参照

java - annotate プラグイン + JAXB を使用して Java の「フィールド」にカスタム注釈を挿入します (xsd -> Java の場合)

使用事例:

JAXB によって生成された Java クラスのフィールドにカスタム アノテーションを挿入したい

問題:

Annotate プラグイン + JAXB [1] を使用すると、カスタム アノテーションを正常に挿入できますが、フィールドではなく getter メソッドに挿入されます。ただし、Morphia (mongo DB) の注釈 (実際に挿入したいもの) は、Java フィールドにのみ注釈を付けることができます [2]。

私のテストxsd:

私のテストバインディングxjb:

生成された Java スニペット:

ご覧のとおり、「バー」フィールドに注釈を付けたいと思います。お知らせ下さい。必要に応じてさらにお尋ねください。

[1] Jaxb または HyperJaxb を使用して @Indexed アノテーションを生成します
[2] サンプルについては、Morphia の @Id アノテーションを参照してください

0 投票する
2 に答える
2057 参照

java - jaxb/annox およびカスタム アノテーションを使用した ClassNotFoundException

私は注釈の使用シナリオに少し行き詰まっており、あなたの意見を期待していました。

次の注釈 ( ExistingCustomerValidatorクラスと共に同じプロジェクトで定義) を指定すると、パッケージ com.tktserver.constraints;

および次の jxb カスタマイズ

Maven を介してソースを生成すると、これが得られます (プロジェクト全体が Maven によって処理されます)。

他の JSR-303 アノテーションは正常に動作するようです。私が疑問に思っているのは、ここで循環依存関係に陥っているのか、つまり、generate-sources が最初に実行されてからコンパイルされるのか、したがって、generate-sources の実行時に利用できる ExistingCustomerMatch 注釈クラスがないのか、それともこれがまったく別の獣なのかということです。

ありがとう、イオアニス

0 投票する
1 に答える
5773 参照

jaxb - 注釈なしのJAXBアンマーシャリングカスタムエンティティ

unmarshall(Javaオブジェクトに変換)する必要のあるxmlファイルがあります。現在、Javaオブジェクトはサードパーティのものであり、マーシャリング解除のために注釈を付けることはできません。注釈なしでアンマーシャリングする方法に関するアイデア。以下の私のコードスニペットを見つけてください

次の例外が発生します。引数なしのコンストラクター(Adapterのアノテーションを追加することでこれを解決できることはわかっていますが、アノテーションなしで処理するためのサンプルスニペットを知りたい、または見たいです)

同様に、JAXBでインターフェイスを処理できないという別のメッセージが表示されます。

com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationExceptionsの5つのカウントjava.sql.Timestampには、引数なしのデフォルトコンストラクターがありません。この問題は、次の場所に関連しています。java.sql.Timestamp at public java.sql.Timestamp com.test.Abc.getSomeTimestamp()atcom.riteaid.entities.customer.Customercom.test.Defにはno-argデフォルトコンストラクタ。この問題は、次の場所に関連しています:com.test.Def .. ..

java.sql.Dateには、引数なしのデフォルトコンストラクタがありません。この問題は、次の場所に関連しています。at java.sql.Date ... com.test.Ghiはインターフェースであり、JAXBはインターフェースを処理できません。この問題は、次の場所に関連しています。...com.test.Ghiには引数なしのデフォルトコンストラクターがありません。この問題は、次の場所に関連しています。