我正在这里处理相关问题,但我有一个单独的问题。也许这都是同一问题的一部分,但看起来却有所不同。
由于存在通过Ant任务和Facade运行XJC的问题,我现在尝试使用JDK的命令行“ xjc”工具运行XJC。
与原始问题一样,我正在尝试使用“ Element Wrapper”和“ Fluent API”扩展,因此我的命令行如下:
xjc -extension -classpath "lib/jaxb-fluent-api-2.1.8.jar;lib/jaxb-xew-plugin-1.4.jar" -Xxew -summary target/xew-summary.txt -instantiate lazy -Xfluent-api schema/serviceCallResults.xsd
这些参数与我发送给“ cxf-jaxb-plugin” Maven插件的参数基本相同,该参数已经使用了很长时间。不幸的是,此“ xjc”命令行失败并显示:
无法识别的参数-Xxew
这里可能出什么问题了?
抱歉,这是行不通的。
XJC插件必须扩展com.sun.tools.xjc.Plugin
该类。但是JDK中包含的XJC可以作为xjc
二进制文件(例如xjc.exe
在Windows下)重新包装:com.sun.tools.xjc
-> com.sun.tools.internal.xjc
。
因此,在普通命令行中,xjc
您没有com.sun.tools.xjc.Plugin
类(XJC插件扩展了该类),而是类com.sun.tools.internal.xjc.Plugin
。
因此,CLIxjc
不适用于XJC插件。仍然有效的唯一插件是重新包装的插件。(例如com.sun.tools.internal.xjc.addon.code_injector.PluginImpl
。)
如果您想要命令行,然后尝试找出java -cp ...
参数,这是使其与XEW或JAXB2-Basics等第三方XJC插件一起使用的唯一方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句