问题标签 [jaxb-xew-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10047 浏览

wsimport - 如何让 maven-jaxws-plugin 在从 xsd 生成的类上生成 @XmlElementWrapper?

我正在使用 maven-jaxws-plugin 从我的 wsdl 模式生成 java 类。它不会在生成的类中生成 @XmlElementWrapper 注释。从这篇文章中,我了解到我需要使用 jaxb-xew-plugin,但无法使其与 maven-jaxws-plugin 一起使用。任何帮助,将不胜感激。这是我尝试过的配置

如果它只能与 maven-jaxb2-plugin 集成,你能帮我启动我的网络服务吗?本质上我如何指定 wsdl 以及如何生成服务类?(带有@WebService 注释)

谢谢,

巴迦

0 投票
1 回答
4090 浏览

java - wsimport/xjc 命令行插件

我刚刚使用这篇文章成功地使用了一个名为xew的 wsimport/xjc 插件和 maven 。

在我的公司为此使用 Maven 目前不是一种选择,因此我正在尝试使用 Java 7 SDK 中的 wsimport 实用程序。

我如何告诉 wsimport 在导入我的 WSDL 时包含 xew xjc 插件?

我当前的命令行是:

但它不会吃掉 -B 参数:no such JAXB option: -Xxew. xew 插件和 jaxb-xjc.jar 位于工作目录和系统 CLASSPATH 中。

0 投票
5 回答
7763 浏览

jaxb2 - Maven JAX WS 中的 Jaxb Xew 插件

这是我的简单 pom.xml

并且 -e -X 开关不会显示有关此错误的任何信息

"main" java.lang.ClassCastException: java.lang.NoSuchMethodError 不能在 .jax_ws_commons.jaxws.Invoker.main(Invoker.java:87) 上强制转换

这是我正在尝试的最基本的配置。

C:\api>java -version java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, 混合模式)

C:\api>mvn -version Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T21:37:52+04:00) Maven 主页:C:\Program Files\apache-maven-3.2.1\bin.. Java 版本:1.7.0_51,供应商:Oracle Corporation Java 主页:C:\Program Files\Java\jdk1.7.0_51\jre 默认语言环境:en_US,平台编码:Cp1256 操作系统名称:“windows 7”,版本:“6.1” ,拱门:“amd64”,家庭:“windows”

我的配置有什么问题?感谢任何帮助谢谢

0 投票
0 回答
651 浏览

jaxb - 自定义 JAXB 绑定导致命名空间错误

历史

我正在从不受我控制的模式生成 Java 类。我将它导出到一个 jar,它是 Web 服务项目的依赖项。这可以正常工作。我试图将自定义绑定添加到 marshal 和 unmarshal xs:date 和 xs:dateTime 作为org.joda.DateTime而不是XMLGregorianCalendar. 我能够生成 jar,在 web 服务中编译它,并毫无问题地部署。然而,一旦部署,以前有效的 XML 请求现在会引发以下异常:

此异常不会发生在根元素处。解析 xs:date 和 xs:dateTime 的几个早期实例没有问题,异常首先出现在包含 xs:date 的复杂类型上。

以下是 XML 结构的示例:

webServiceNamespace和是不同的schemaNamespace,但以前在肥皂信封中只需要一个。

问题

为什么,在添加自定义绑定之后,解析器要求我只在少数父元素上放置一个命名空间,这些父元素的子元素受自定义绑定影响?

绑定适配器

绑定.xjb

POM.xml(无论如何都是相关位)

注释

我想强调的是,没有绑定,这完全可以正常工作,据我所知,生成的类文件是相同的(除了特定于包装器的额外注释)。SOAP 请求中使用的 xml 对 Web 服务生成的 WSDL 有效,无论我是否使用自定义绑定,WSDL 都是一样的。只有具有是集合成员并且具有具有日期的子元素的元素才需要模式命名空间。最后,一旦我在请求中提供了命名空间,响应就会将请求对象放入 webServiceNamespace,并将除模式定义的根之外的所有子对象放入 schemaNamespace。以前,整个响应都在 webServiceNamespace 中。

显然,自定义绑定的添加在命名空间解析方面做了一些奇怪的事情(技术术语),但我对这个主题的了解还不够,无法取得任何进展。

建议?

更新:删除用于生成漂亮收藏的 XEW 插件不会影响此问题。

更新:这是一个包含绑定之前和之后日期的类的示例。这是唯一要更改的属性:

更新:如果我针对没有命名空间的模式执行构建,这将毫无问题。显然不是修复,而是目前的解决方法。

0 投票
4 回答
8881 浏览

maven - com.sun.tools.xjc.Plugin:提供者不是子类型

我有一个使用 Maven 构建的 CXF JAX-RS 应用程序。我正在将其转换为 Gradle,但使用的是 Ant XJC 任务。

当前构建使用了几个扩展,其中一个是“元素包装器”插件的副本,另一个是“jaxb-fluent-api”。

我尝试将这两个插件的 jar 放入 xjc 类路径中,但是当我运行 XJC 任务时,我得到以下信息:

java.util.ServiceConfigurationError: com.sun.tools.xjc.Plugin: Provider dk.conspicio.jaxb.plugins.XmlElementWrapperPlugin 不是子类型

XmlElementWrapperPlugin 类扩展了“com.sun.tools.xjc.Plugin”。

知道这里发生了什么吗?

如果重要的话,我的 xjc 插件的 Maven 配置如下所示:

这是我的“build.gradle”,只省略了存储库:

更新:

我已经确定这不是“元素包装器”扩展的问题。如果我从类路径中删除该 jar 并重新构建,它会为“Fluent API”插件报告相同的错误。

我还确定这不是严格意义上的 Gradle 问题。我使用 Ant“build.xml”,甚至是直接调用“XJCFacade”Java 类的纯 shell 脚本也得到了相同的症状。事实上,我甚至可以通过不指定任何模式文件来稍微简化这个脚本,这清楚地表明这个错误甚至在尝试处理任何模式之前就发生了。

以下是我当前的脚本:

您可以通过将所有这些工件下载到 Gradle 或 Maven 缓存并将它们复制到一个简单的文件夹结构中来构建相同的测试。

另请注意,我主要在 Windows 7 上运行此测试,但我压缩了此项目并将其移至我的 CentOS VM,它给了我完全相同的错误。

0 投票
1 回答
6182 浏览

java - 如何在 xjc 命令行上使用 JAXB 扩展

我在这里处理一个相关问题,但我有一个单独的问题。也许这都是同一个问题的一部分,但似乎不同。

由于我通过 Ant 任务和外观运行 XJC 时遇到的问题,我现在尝试使用 JDK 中的命令行“xjc”工具运行它。

与原始问题一样,我正在尝试使用“Element Wrapper”和“Fluent API”扩展,所以我的命令行如下:

这些与我发送给“cxf-jaxb-plugin”Maven 插件的参数基本相同,该插件已经工作了很长时间。不幸的是,这个“xjc”命令行失败了:

无法识别的参数 -Xxew

这里可能有什么问题?

0 投票
2 回答
1324 浏览

jaxb - 列表中的 Cxf Wsdl2java 空条目消失

我已经使用xew 插件创建了一个带有 cxf 的 web 服务客户端,用于列表展开

问题是null列表中的 消失了。例如:

我有一个List<String>带有字符串和null-entry的请求

当请求现在到达服务器时,它只包含字符串而不是null条目。所以示例列表中只有 2 个条目。

这是 wsdl 的示例:

我正在使用 maven 生成 ws 客户端

jaxbBindings.xml

jaxwsBindings.xml

样品请求:

有没有办法让null条目仍然存在于服务器端?

0 投票
2 回答
194 浏览

xsd - Java XSD - 使用自定义集合类型

我的问题

我正在使用 jaxb2 maven 插件将我的 XSD 定义对象转换为 Java 类。我的目标是在我的 XSD(例如xs:choice unbound)中将列表类型元素设置为 LinkedList 而不是使用默认的 ArrayList 类型。我正在使用 jaxb-xew-plugin 版本 1.10。这是我的相关代码:

XSD:

聚甲醛:

生成的 Java 代码

如您所见,ArrayList类型仍然出现,而不是LinkedList. 实际上似乎xew参数和命令被完全忽略了......我没有收到任何错误

我已经尝试了很多变体,xs:annotation 几乎在我能逻辑想到的每个位置组合中复制和粘贴简介。我得到的唯一错误是:

这个组合导致:com.sun.istack.SAXParseException2: compiler was unable to honor this xew customization. It is attached to a wrong place, or its inconsistent with other bindings.

您是否看到任何缺失的步骤会导致我的自定义集合覆盖不会被拾取?

我附上了 maven 调试输出,有很多东西要浏览,我没有在那里找到任何提示。 mvn-debug.log

或者...

从 XSD 生成 Java 对象时,是否有另一种方法可以使用自定义 List 类型?

(PS。我在 github 部分为 jaxb-xew-plugin交叉发布了这个,但是我意识到最后一次提交是在 2 年前,所以它可能是一个休眠项目。在这里发布以寻求 SOF 社区的帮助)