私はJAXBを使用して、XMLファイルをJavaオブジェクトの標準的なものにアンマーシャリングします。 JAXBがこれを完了したら、新しく作成されたオブジェクトでメソッドを呼び出すようにしたいと思います。XMLファイルをオブジェクトに非整列化した後、JAXBがメソッドを呼び出す方法を教えてください。
これを行うメカニズムはありますか?私はオブジェクトを、外部エンティティではなく、1つの場所で建設を続けるためにこれを好むだろう。
ありがとうございました。
私はJAXBを使用して、XMLファイルをJavaオブジェクトの標準的なものにアンマーシャリングします。 JAXBがこれを完了したら、新しく作成されたオブジェクトでメソッドを呼び出すようにしたいと思います。XMLファイルをオブジェクトに非整列化した後、JAXBがメソッドを呼び出す方法を教えてください。
これを行うメカニズムはありますか?私はオブジェクトを、外部エンティティではなく、1つの場所で建設を続けるためにこれを好むだろう。
ありがとうございました。
は、非整列化が行われた後、あなたは Unmarshaller-Listener
を必要とするコードを実行できるようにするには、リスナーが プロパティが設定された後か前に呼び出された場合しかし、私は、よく分かりません。
注:リスナーがJAXB- 2.0以降で使用可能です(JDK- )
Unmarshaller.Listenerに加えて、あなたのドメインモデルクラスに自分自身を次のメソッドを追加することができます。
public void beforeUnmarshal(Unmarshaller unmarshaller, Object parent)
public void afterUnmarshal(Unmarshaller unmarshaller, Object parent)
から: http://java.sun.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.Listener.html
メソッドのシグネチャが間違っているため、動作しません。最初のオブジェクトは "Unmarshaller"型でなければなりません。 – Robert
@Robert - メソッドのシグネチャが修正されました。 –
あなたのオブジェクト定義に以下の方法を、簡単な追加することができます。これは、ONC
void afterUnmarshal(Unmarshaller u, Object parent) {
...
}
と呼ばれます現在のオブジェクトは完全に非直列化されています。 ドキュメントを参照してくださいunmarshalling callbacks
私はアンマーシャリングプロセスの後に自動的に呼び出されるメソッドが必要ですか? –
はい。正確に。 JUnitの@BeforeClassのようなもので、構築とミューテータが呼び出された後にメソッドが呼び出されます。 – Elliot