2010-12-30 11 views
4

Javaデベロッパーはここにあります。私はバインドオブジェクトを作成するためにJAXBを使用しています。私はこのようなJAXBContextを作成しようとすると:JAXBContext.newInstance()のNullPointerException

JAXBContext.newInstance("com.mycompany.jaxb.pkg1:com.mycompany.jaxb.pkg2"); 

私はNullPointerExceptionが取得:

Exception in thread "main" java.lang.NullPointerException 
    at com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.calcXmlName(PropertyInfoImpl.java:287) 
    at com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.calcXmlName(PropertyInfoImpl.java:260) 
    at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl.getTypes(ElementPropertyInfoImpl.java:100) 
    at com.sun.xml.bind.v2.model.impl.RuntimeElementPropertyInfoImpl.getTypes(RuntimeElementPropertyInfoImpl.java:50) 
    at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl$1.size(ElementPropertyInfoImpl.java:42) 
    at java.util.AbstractList$Itr.hasNext(AbstractList.java:416) 
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:139) 
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:49) 
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:41) 
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:189) 
    at com.sun.xml.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:63) 
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.addRegistry(ModelBuilder.java:232) 
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:201) 
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl$3.run(JAXBContextImpl.java:357) 
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl$3.run(JAXBContextImpl.java:351) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:350) 
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:216) 
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:76) 
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:55) 
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:124) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:592) 
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:132) 
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:286) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:244) 
    at com.mycompany.jaxb.JAXBContextFactory.initIfNeeded(JAXBContextFactory.java:66) 

関連するキーワードをグーグルでは、これは既知のバグであり、私がすべきことを言って、いくつかのディスカッションスレッドに私を導きましたバージョン2.0.3にアップグレードしてください。しかし、ここに私のMaven POMファイルがあります:

<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <version>2.2.1</version> 
</dependency> 
<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.1</version> 
</dependency> 

...私がすでにバージョン2.0.3を超えています。 (そして、はい、私は古いバージョンにロールバックしようとしましたが、それは助けになりませんでした。)

2.0.2以前のバージョン以外の理由でこれを見た人は誰ですか?問題を追跡しますか?

+0

あなたはどのJavaのバージョンを使用していますか? – skaffman

+0

私はJava 1.5を使用しています。 – mcherm

+0

これは私が得たのと同じエラーを解決しました。どうもありがとう :) – sparrow

答えて

2

大丈夫、記録のために:解決策が見つかりました。

いくつかのスレッドが示唆していたように、このバグのソースは2.0.2より古いバージョンのJAXBを使用していました。私のエラーは、私のMaven POMファイルが古いバージョンのライブラリをインポートしていた別のPOMファイルによって上書きされていたことでした。

スカフマンのおかげで、誰もが一見しました。

関連する問題