根据我的阅读,我相信 XJC 参数用于自定义 o/p Java 文件。我们在 jaxws-maven-plugin 中使用了这些。我在添加 jaxb-xjc jar 时找不到“MaskingClassLoader”的问题。
在 jaxws-maven-plugin 中,除了 '-Xcollection-setter-injector' 和 '-Xboolean-getter' 之外,提供的 xjc 参数之一是 '-Xybdisplay' 。当我尝试执行 'wsimport' 时,出现错误
[信息] jaxws:wsimport 参数:[-s, D:\HeartBeat_Admin\test\testmodel\target\jaxws\wsimport\java, -d, D:\HeartBeat_Admin\test\testmodel\target\classes, -extension, -Xnocompile , -B-verbose, -B-extension, -B-Xcollection-setter-injector, -B-Xboolean-getter, -B-Xybdisplay, D:\HeartBeat_Admin\test\testmodel\src\main\wsdl\test.wsdl ] 使用 java.util.ServiceLoader [ybdisplay] XJC Plugin 类 com.sun.tools.xjc.addon.DisplayPlugin 实例化 [ybdisplay] 解析参数 -Xybdisplay 解析 WSDL... [信息] --------------------------------------------- ------------------------- [信息] 构建失败 [信息] --------------------------------------------- ------------------------- [INFO] 总时间:18.265s [INFO] 完成于:2012 年 5 月 23 日星期三 23:35:11 IST [INFO] 最终内存:63M/63M [信息] --------------------------------------------- ------------------------- [错误] 无法在项目 testmodel 上执行目标 org.codehaus.mojo:jaxws-maven-plugin:1.12:wsimport (profile):执行错误:wsimport [-s, D:\HeartBeat_Admin\test\testmodel\target\jaxws\ wsimport\java,-d,D:\HeartBeat_Admin\test\testmodel\target\classes,-extension,-Xnocompile,-B-verbose,-B-extension,-B-Xcollection-setter-injector,-B-Xboolean- getter, -B-Xybdisplay, D:\HeartBeat_Admin\test\testmodel\src\main\wsdl\test.wsdl] -> [帮助 1] [错误] [错误] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。 [错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。 [错误] [错误] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [错误] [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
-e 和 -X 没有多大帮助。我试图在 xsd 中搜索术语“ybdisplay”,但无法理解问题所在或自定义的工作原理。删除 xjc 参数 'ybdisplay' 会导致一个错误,指出我需要为自定义启用它。
在 XSD 中,我们有以下内容
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ybmeta="http://www.yellowbook.com/bp/model/meta"
xmlns:tns="http://www.yellowbook.com/bp/model/types"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
targetNamespace="http://www.yellowbook.com/bp/model/types"
elementFormDefault="unqualified"
attributeFormDefault="unqualified" jxb:version="2.0" jxb:extensionBindingPrefixes="ybmeta xjc">
<!-- Use our specific bindings -->
<xsd:annotation>
<xsd:appinfo>
<jxb:bindings schemaLocation="test.xsd">
<jxb:schemaBindings>
<jxb:package name="com.test.model.api"/>
</jxb:schemaBindings>
</jxb:bindings>
</xsd:appinfo>
</xsd:annotation>
我不确定以上是否与 xjc 参数 'ybdisplay' 相关。请指导我 xjc 的工作以及如何调试此问题。