Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java com.sun.tools.jxc.SchemaGenTask中的NullPointerException_Java_Ant_Jaxb - Fatal编程技术网

Java com.sun.tools.jxc.SchemaGenTask中的NullPointerException

Java com.sun.tools.jxc.SchemaGenTask中的NullPointerException,java,ant,jaxb,Java,Ant,Jaxb,鉴于此ant脚本: <?xml version="1.0" encoding="UTF-8"?> <project name="projectname" default="generate-schema" basedir="."> <taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask"> <classpath> &l

鉴于此ant脚本:

<?xml version="1.0" encoding="UTF-8"?>
<project name="projectname" default="generate-schema" basedir=".">

    <taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask">
        <classpath>
            <fileset dir="../BuildJars/lib" includes="*.jar" />
        </classpath>
    </taskdef>

    <target name="generate-schema">
        <schemagen srcdir="src/gb/informaticasystems/messages" destdir="schema">
            <schema namespace="http://www.informatica-systems.co.uk/aquarius/messages/1.0" file="messages-1.0.xsd" />
        </schemagen>
    </target>

</project>

我得到这个错误:

Buildfile: C:\Users\davidcollie\workspace\aquarius-feature\AquariusServerLibrary\schemagen.xml
generate-schema:
[schemagen] Generating schema from 4 source files
[schemagen] Problem encountered during annotation processing; 
[schemagen] see stacktrace below for more information.
[schemagen] java.lang.NullPointerException
[schemagen]     at com.sun.tools.jxc.model.nav.APTNavigator$2.onDeclaredType(APTNavigator.java:428)
[schemagen]     at com.sun.tools.jxc.model.nav.APTNavigator$2.onClassType(APTNavigator.java:402)
[schemagen]     at com.sun.tools.jxc.model.nav.APTNavigator$2.onClassType(APTNavigator.java:456)
[schemagen]     at com.sun.istack.tools.APTTypeVisitor.apply(APTTypeVisitor.java:27)
[schemagen]     at com.sun.tools.jxc.model.nav.APTNavigator.getBaseClass(APTNavigator.java:109)
[schemagen]     at com.sun.tools.jxc.model.nav.APTNavigator.getBaseClass(APTNavigator.java:85)
[schemagen]     at com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.getIndividualType(PropertyInfoImpl.java:190)
[schemagen]     at com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.<init>(PropertyInfoImpl.java:132)
[schemagen]     at com.sun.xml.bind.v2.model.impl.MapPropertyInfoImpl.<init>(MapPropertyInfoImpl.java:67)
[schemagen]     at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.createMapProperty(ClassInfoImpl.java:917)
[schemagen]     at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.addProperty(ClassInfoImpl.java:874)
[schemagen]     at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.findGetterSetterProperties(ClassInfoImpl.java:993)
[schemagen]     at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:303)
[schemagen]     at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:243)
[schemagen]     at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:209)
[schemagen]     at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:315)
[schemagen]     at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:330)
[schemagen]     at com.sun.tools.xjc.api.impl.j2s.JavaCompilerImpl.bind(JavaCompilerImpl.java:90)
[schemagen]     at com.sun.tools.jxc.apt.SchemaGenerator$1.process(SchemaGenerator.java:115)
[schemagen]     at com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60)
[schemagen]     at com.sun.tools.apt.comp.Apt.main(Apt.java:454)
[schemagen]     at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:258)
[schemagen]     at com.sun.tools.apt.main.Main.compile(Main.java:1102)
[schemagen]     at com.sun.tools.apt.main.Main.compile(Main.java:964)
[schemagen]     at com.sun.tools.apt.Main.processing(Main.java:95)
[schemagen]     at com.sun.tools.apt.Main.process(Main.java:85)
[schemagen]     at com.sun.tools.apt.Main.process(Main.java:67)
[schemagen]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[schemagen]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[schemagen]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[schemagen]     at java.lang.reflect.Method.invoke(Method.java:597)
[schemagen]     at com.sun.tools.jxc.AptBasedTask$InternalAptAdapter.execute(AptBasedTask.java:97)
[schemagen]     at com.sun.tools.jxc.AptBasedTask.compile(AptBasedTask.java:144)
[schemagen]     at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:820)
[schemagen]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[schemagen]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[schemagen]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[schemagen]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[schemagen]     at java.lang.reflect.Method.invoke(Method.java:597)
[schemagen]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[schemagen]     at org.apache.tools.ant.Task.perform(Task.java:348)
[schemagen]     at org.apache.tools.ant.Target.execute(Target.java:357)
[schemagen]     at org.apache.tools.ant.Target.performTasks(Target.java:385)
[schemagen]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[schemagen]     at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
[schemagen]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[schemagen]     at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[schemagen]     at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[schemagen]     at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
[schemagen]     at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)

BUILD FAILED
C:\Users\davidcollie\workspace\aquarius-feature\AquariusServerLibrary\schemagen.xml:11: schema generation failed

Total time: 1 second
Buildfile:C:\Users\davidcollie\workspace\aquarius feature\AquariusServerLibrary\schemagen.xml
生成架构:
[schemagen]从4个源文件生成架构
[schemagen]注释处理过程中遇到的问题;
[schemagen]有关更多信息,请参阅下面的stacktrace。
[schemagen]java.lang.NullPointerException
[schemagen]位于com.sun.tools.jxc.model.nav.APTNavigator$2.onDeclaredType(APTNavigator.java:428)
[schemagen]位于com.sun.tools.jxc.model.nav.APTNavigator$2.onClassType(APTNavigator.java:402)
[schemagen]位于com.sun.tools.jxc.model.nav.APTNavigator$2.onClassType(APTNavigator.java:456)
[schemagen]位于com.sun.istack.tools.APTTypeVisitor.apply(APTTypeVisitor.java:27)
[schemagen]位于com.sun.tools.jxc.model.nav.APTNavigator.getBaseClass(APTNavigator.java:109)
[schemagen]位于com.sun.tools.jxc.model.nav.APTNavigator.getBaseClass(APTNavigator.java:85)
[schemagen]位于com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.getIndividualType(PropertyInfoImpl.java:190)
[schemagen]位于com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.(PropertyInfoImpl.java:132)
[schemagen]位于com.sun.xml.bind.v2.model.impl.MapPropertyInfoImpl.(MapPropertyInfoImpl.java:67)
[schemagen]位于com.sun.xml.bind.v2.model.impl.ClassInfo impl.createMapProperty(ClassInfo impl.java:917)
[schemagen]位于com.sun.xml.bind.v2.model.impl.ClassInfoImpl.addProperty(ClassInfoImpl.java:874)
[schemagen]位于com.sun.xml.bind.v2.model.impl.ClassInfo impl.findGetterSetterProperties(ClassInfo impl.java:993)
[schemagen]位于com.sun.xml.bind.v2.model.impl.ClassInfo impl.getProperties(ClassInfo impl.java:303)
[schemagen]位于com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:243)
[schemagen]位于com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:209)
[schemagen]位于com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:315)
[schemagen]位于com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:330)
[schemagen]位于com.sun.tools.xjc.api.impl.j2s.JavaCompilerImpl.bind(JavaCompilerImpl.java:90)
[schemagen]位于com.sun.tools.jxc.apt.SchemaGenerator$1.process(SchemaGenerator.java:115)
[schemagen]位于com.sun.mirror.apt.AnnotationProcessors$compositeanotationProcessor.process(AnnotationProcessors.java:60)
[schemagen]位于com.sun.tools.apt.comp.apt.main(apt.java:454)
[schemagen]位于com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:258)
[schemagen]位于com.sun.tools.apt.main.main.compile(main.java:1102)
[schemagen]位于com.sun.tools.apt.main.main.compile(main.java:964)
[schemagen]位于com.sun.tools.apt.Main.processing(Main.java:95)
[schemagen]位于com.sun.tools.apt.Main.process(Main.java:85)
[schemagen]位于com.sun.tools.apt.Main.process(Main.java:67)
[schemagen]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
[schemagen]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[schemagen]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[schemagen]位于java.lang.reflect.Method.invoke(Method.java:597)
[schemagen]位于com.sun.tools.jxc.AptBasedTask$InternalAptAdapter.execute(AptBasedTask.java:97)
[schemagen]位于com.sun.tools.jxc.AptBasedTask.compile(AptBasedTask.java:144)
[schemagen]位于org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:820)
[schemagen]位于org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[schemagen]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
[schemagen]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[schemagen]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[schemagen]位于java.lang.reflect.Method.invoke(Method.java:597)
[schemagen]位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[schemagen]位于org.apache.tools.ant.Task.perform(Task.java:348)
[schemagen]位于org.apache.tools.ant.Target.execute(Target.java:357)
[schemagen]位于org.apache.tools.ant.Target.performTasks(Target.java:385)
[schemagen]位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[schemagen]位于org.apache.tools.ant.Project.executeTarget(Project.java:1298)
[schemagen]位于org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[schemagen]位于org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[schemagen]位于org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[schemagen]位于org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
[schemagen]位于org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
构建失败
C:\Users\davidcollie\workspace\aquarius feature\AquariusServerLibrary\schemagen.xml:11:架构生成失败
总时间:1秒
有什么想法吗?

任务需要包含一个类路径,可能相当于
任务中的类路径,毫无疑问,它位于Ant脚本的其他地方。我还质疑
srcdir
属性的值。它应该指向源代码树的顶部,而不是在任何包中。在我看来,“gb.informaticasystems.messages”可能是项目中的一个包。如果是这样,您应该将属性更改为
srcdir=“src”
。因此,它应该是这样的(您需要提供类路径):


我将运行ant脚本的时间从1.6切换到1.5,这会导致抛出正确的堆栈跟踪
<target name="generate-schema">
    <schemagen srcdir="src" destdir="schema">
        <schema namespace="http://www.informatica-systems.co.uk/aquarius/messages/1.0" file="messages-1.0.xsd" />
        <classpath>
           <!-- Classpath definition goes here -->
        </classpath>
    </schemagen>
</target>
<property name="event.package" value="my/organisation/events"/>
<schemagen srcdir="${src.main.java.dir}" 
    destdir="META-INF/event-schema" 
    classpathref="build.classpath">
    <include name="${event.package}/Event1.java"/>
    <include name="${event.package}/Event2.java"/>
</schemagen>
                 <execution>
                    <phase>generate-resources</phase>
                    <id>rest-webservice-schemagen</id>
                    <goals>
                        <goal>schemagen</goal>
                    </goals>
                    <configuration>
                        <includes>
                            <include>**/*DTO.java</include>
                            <include>**/*Type.java</include>
                            <include>**/*Status.java</include>
                        </includes>
                        <verbose>true</verbose>
                    </configuration>
                </execution>