使用 jaxb-ri-2.2.7 的 ant schemagen 任务中的 ClassCastException [英] ClassCastException in ant schemagen task using jaxb-ri-2.2.7

查看:32
本文介绍了使用 jaxb-ri-2.2.7 的 ant schemagen 任务中的 ClassCastException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 JAXB-RI 2.2.7 中的 schemagen ant 任务,但我在 build.xml 中的 schemagen 任务上不断收到BUILD FAILED .... Error started ap".相关的节如下:

I'm trying to use the schemagen ant task from JAXB-RI 2.2.7, but I keep getting "BUILD FAILED .... Error starting ap" on the schemagen task in build.xml. The relevant stanzas are as follows:

<taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask">
  <classpath refid="compile.classpath"/>
</taskdef>

<target name="schemas" description="Compile all Java source files">
 <mkdir dir="${schemas.dir}" />
 <schemagen destdir="${schemas.dir}">
  <src path="${src.dir}"/>
  <classpath refid="compile.classpath" />
 </schemagen>
</target>

使用 -verbose,我得到下面的堆栈跟踪.我试过在谷歌上搜索 ClassCastException 的详细信息,但没有找到任何东西.有什么建议?

With -verbose, I get the stack trace below. I've tried googling for the details of the ClassCastException but not found anything. Any suggestions?

谢谢,亚当

BUILD FAILED
/home/adam/sandboxes/adam/sensei/code/trunk/repository/build.xml:99: Error starting ap
    at com.sun.tools.jxc.ApBasedTask$InternalApAdapter.execute(ApBasedTask.java:131)
    at com.sun.tools.jxc.ApBasedTask.compile(ApBasedTask.java:170)
    at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:930)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:435)
    at org.apache.tools.ant.Target.performTasks(Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
    at org.apache.tools.ant.Main.runBuild(Main.java:851)
    at org.apache.tools.ant.Main.startAnt(Main.java:235)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.RuntimeException: java.lang.AssertionError: java.lang.ClassCastException: com.sun.tools.javac.api.JavacTrees cannot be cast to com.sun.source.util.Trees
    at com.sun.tools.javac.main.Main.compile(Main.java:469)
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132)
    at com.sun.tools.jxc.ApBasedTask$InternalApAdapter.execute(ApBasedTask.java:127)
    ... 18 more
Caused by: java.lang.AssertionError: java.lang.ClassCastException: com.sun.tools.javac.api.JavacTrees cannot be cast to com.sun.source.util.Trees
    at com.sun.source.util.Trees.getJavacTrees(Trees.java:84)
    at com.sun.source.util.Trees.instance(Trees.java:73)
    at com.sun.tools.jxc.model.nav.ApNavigator.getClassLocation(ApNavigator.java:410)
    at com.sun.tools.jxc.model.nav.ApNavigator.getClassLocation(ApNavigator.java:83)
    at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getLocation(ClassInfoImpl.java:1284)
    at com.sun.xml.bind.v2.runtime.IllegalAnnotationException.convert(IllegalAnnotationException.java:122)
    at com.sun.xml.bind.v2.runtime.IllegalAnnotationException.build(IllegalAnnotationException.java:106)
    at com.sun.xml.bind.v2.runtime.IllegalAnnotationException.<init>(IllegalAnnotationException.java:70)
    at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.<init>(ClassInfoImpl.java:211)
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.createClassInfo(ModelBuilder.java:399)
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:257)
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:227)
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:375)
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:390)
    at com.sun.tools.jxc.api.impl.j2s.JavaCompilerImpl.bind(JavaCompilerImpl.java:95)
    at com.sun.tools.jxc.ap.SchemaGenerator.process(SchemaGenerator.java:110)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1700(JavacProcessingEnvironment.java:97)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1029)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1108)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824)
    at com.sun.tools.javac.main.Main.compile(Main.java:439)
    ... 20 more
Caused by: java.lang.ClassCastException: com.sun.tools.javac.api.JavacTrees cannot be cast to com.sun.source.util.Trees
    at com.sun.source.util.Trees.getJavacTrees(Trees.java:82)
    ... 43 more

推荐答案

同样的问题.从堆栈跟踪中我会说这是 JAXB 注释中的一些错误,但是当 xjc 尝试处理该异常时,它会因另一个异常而失败,并且无法知道问题出在哪个类和属性中.

Same problem here. From the stack trace I would say it's some error in JAXB annotation, but while xjc tries to handle that exception it fails with another one and there's no way of knowing in which class and property the problem is.

这篇关于使用 jaxb-ri-2.2.7 的 ant schemagen 任务中的 ClassCastException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆