1

JAXB Unmarshalling で動作する XML の構造を作成しました。問題は、Unmarshaller が作成されていないことです。

JAXBContext jc =  JAXBContext.newInstance("A Fully qualified class name");
Unmarshaller um =  jc.createUnmarshaller();

java.lang.NullPointerException is being thrown at 
Unmarshaller um =  jc.createUnmarshaller();

java.lang.NullPointerException 以外に statcktrace には何もないため、デバッグもできません。アンマーシャラーの作成中にこれを解決する方法を誰か教えてください?? JAXB 2.0 用

参考までに、これは私のパーサークラスです

public class BADFMMessageParser  {
private static JAXBContext jc = null;
    static {
        try {
        jc = JAXBContext.newInstance("My Fully Qualified class name");
        } catch (Exception x) {
        }
    }
    public static MyClass parse(String str) throws Exception {
        Unmarshaller um = jc.createUnmarshaller();
        BADFM  badfmMessage = (BADFM) um.unmarshal(new StringReader(requestStr));
        JAXBElement<? extends MyClass> value = badfmMessage.getMessage();
        return value.getValue();
    }
}
4

1 に答える 1

1

NPE が表示される理由はわかりませんが、作成方法がJAXBContext間違っているようです。指定したパッケージにjaxb.indexファイルまたはクラスがあると仮定すると、次のことができます。ObjectFactory

JAXBContext jc =  JAXBContext.newInstance("your.domain.model.package");

JAXBContextそれ以外の場合は、クラスまたはクラスで直接作成できます。

JAXBContext jc = JAXBContext.newInstance(Foo.class,Bar.class);

jaxb.indexファイル例

JAXBContext生成されたモデルの例でのブートストラップ

JAXBContextクラスの例からのブートストラップ

于 2012-04-04T10:41:20.677 に答える