2010-11-29 168 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