gpt4 book ai didi

java - 使用值构造函数生成 JAXB 类的问题

转载 作者:行者123 更新时间:2023-11-30 07:14:55 25 4
gpt4 key购买 nike

我必须在 Ant 脚本中使用 JAXB 从 XML 模式文件生成类。当我以默认方式执行时,一切都很顺利。后来我意识到每个类都需要值构造函数。我尝试为 XJC 使用值构造函数插件,但是当我运行 Ant 脚本时,我得到了一个 error :

BUILD FAILED
c:\HOME\plt\owf2-testing\EdytorScenariuszy\build.xml:17:

java.util.ServiceConfigurationError: com.sun.tools.xjc.Plugin: Provider org.jvnet.jaxb2_commons.plugin.value_constructor.ValueConstructorPlugin not a subtype
at java.util.ServiceLoader.fail(ServiceLoader.java:214)
at java.util.ServiceLoader.access$300(ServiceLoader.java:164)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:352)
at java.util.ServiceLoader$1.next(ServiceLoader.java:428)
at com.sun.tools.xjc.Options.findServices(Options.java:957)
at com.sun.tools.xjc.Options.getAllPlugins(Options.java:374)
at com.sun.tools.xjc.Options.parseArgument(Options.java:688)
at com.sun.tools.xjc.Options.parseArguments(Options.java:809)
at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:474)
at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:457)
at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:380)
at com.sun.istack.tools.ProtectedTask.execute(ProtectedTask.java:103)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)

这是我的 Ant script :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<project name="EdytorScenariuszy" default="createClasses">

<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
<classpath>
<pathelement path="lib/jaxb-xjc.jar"/>
<pathelement path="lib/jaxb-impl.jar"/>
<pathelement path="lib/jaxb2-value-constructor.jar"/>
</classpath>
</taskdef>

<target name="clean">
<delete dir="src/xml" />
</target>

<target name="createClasses" depends="clean">
<xjc schema="scenariuszTestowy.xsd" binding="mapowanieTypow.xjb" destdir="src" package="xml" encoding="UTF-8">
<arg value="-Xvalue-constructor"/>
</xjc>
</target>
</project>

如果有人能帮助我如何处理这个异常,我将不胜感激。

最佳答案

使用 Java 7(使用 java1.5 时没有 porobem),我有一个类似的问题,通过在 taskdef 中使用“com.sun.tools.xjc.XJC2Task”解决,即

代替

<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">

使用这个

<taskdef name="xjc" classname="com.sun.tools.xjc.XJC2Task">

关于java - 使用值构造函数生成 JAXB 类的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18225086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com