2010-11-29 50 views
1

我正在學習JAXb 2.0並且對它很新穎。使用jaxb schemagen創建XSD

我試圖基於使用schemagenŸPOJO類來生成XSD和簡單的類它工作正常,但是當我的類包含refrence其他類

schemagen是給我下面的錯誤是針對同一錯誤跟蹤

註解處理中遇到的問題; 請參閱下面的堆棧跟蹤以獲取更多信息。

java.lang.NullPointerException 
     at com.sun.tools.jxc.model.nav.APTNavigator$2.onDeclaredType(APTNavigator.java:436) 
     at com.sun.tools.jxc.model.nav.APTNavigator$2.onClassType(APTNavigator.java:410) 
     at com.sun.tools.jxc.model.nav.APTNavigator$2.onClassType(APTNavigator.java:464) 
     at com.sun.istack.tools.APTTypeVisitor.apply(APTTypeVisitor.java:27) 
     at com.sun.tools.jxc.model.nav.APTNavigator.getBaseClass(APTNavigator.java:113) 
     at com.sun.tools.jxc.model.nav.APTNavigator.getBaseClass(APTNavigator.java:89) 
     at com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.getIndividualType(PropertyInfoImpl.java:195) 
     at com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.<init>(PropertyInfoImpl.java:137) 
     at com.sun.xml.bind.v2.model.impl.MapPropertyInfoImpl.<init>(MapPropertyInfoImpl.java:71) 
     at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.createMapProperty(ClassInfoImpl.java:928) 
     at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.addProperty(ClassInfoImpl.java:885) 
     at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.findGetterSetterProperties(ClassInfoImpl.java:1004) 
     at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:314) 
     at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:247) 
     at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:213) 
     at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:319) 
     at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:334) 
     at com.sun.tools.xjc.api.impl.j2s.JavaCompilerImpl.bind(JavaCompilerImpl.java:94) 
     at com.sun.tools.jxc.apt.SchemaGenerator$1.process(SchemaGenerator.java:119) 
     at com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60) 
     at com.sun.tools.apt.comp.Apt.main(Apt.java:454) 
     at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:258) 
     at com.sun.tools.apt.main.Main.compile(Main.java:1102) 
     at com.sun.tools.apt.main.Main.compile(Main.java:964) 
     at com.sun.tools.apt.Main.processing(Main.java:95) 
     at com.sun.tools.apt.Main.process(Main.java:85) 
     at com.sun.tools.apt.Main.process(Main.java:67) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at com.sun.tools.jxc.SchemaGenerator$Runner.main(SchemaGenerator.java:245) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at com.sun.tools.jxc.SchemaGenerator.run(SchemaGenerator.java:177) 
     at com.sun.tools.jxc.SchemaGenerator.run(SchemaGenerator.java:81) 
     at com.sun.tools.jxc.SchemaGenerator.main(SchemaGenerator.java:73) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at com.sun.tools.jxc.SchemaGeneratorFacade.main(SchemaGeneratorFacade.java:60) 
C:\Users\Desktop\jaxb\jaxb-ri-20101119\bin\src\com\tr\model\destination\Destination.java:9: package com.tr.model.address does not exist 
import com.tr.model.address.BasicAddress;[code] 
下面

schemagen位於以下位置的我的文件夾結構的詳細

C:\Users\Desktop\jaxb\jaxb-ri-20101119\bin 
在此基礎上我試圖生成XSD

我的Java類是在以下位置

C:\Users\Desktop\jaxb\jaxb-ri-20101119\bin\src\com\tr\model\destination 

Destination.java

而距目的地還有類被refrenced所有其他類本身是以下結構

C:\Users\Raisonne\Desktop\jaxb\jaxb-ri-20101119\bin\src\com\raisonne\tr\model 

我知道這個問題是與類路徑的設置裏面,但我無法弄清楚豪設置正確的類路徑這種情況下

我想系統的CLASSPATH變量設置爲

C:\Users\Raisonne\Desktop\jaxb\jaxb-ri-20101119\bin\src\com\raisonne\tr\model as well other 2 mentioned in my post but nothing worked out. 

值任何一個可以幫助我的設置CLASSPATH schemagen。

在此先感謝

Umesh製作

回答

0

看來你已經設置你的類的包聲明

com.tr.model.address 

它應該是從你的目錄結構

com.tr.model.destination 
+0

地址只有一個錯誤,因爲我已經減少了錯誤跟蹤,無論我在哪裏上課,我都在想我在課上正在錯誤/例外 – 2010-11-29 16:46:19