问题标签 [jaxb2-maven-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 投票
1 回答
2327 浏览

java - 使用 org.springframework.oxm jaxb2marshaller 附加 CDATA

在使用 jaxb2marshaller 使用 CDATA 将几个元素编组为 XML 时,我遇到了很大的麻烦。我已经完成了以下解决方案:

JAXB 编组 使用 CDATA 解组

如何使用 JAXB 生成 CDATA 块?

还有更多,但找不到合适的解决方案。他们要么告诉切换到旧的 JAXB 实现,要么使用 MOXY。但是,这不是我的要求。我已经使用 OXM 库实现了以下两个类,并希望生成一个 XML,其中很少有元素需要附加 CDATA。

在主类中:

以及一个带有 setter 和 getter 的简单 POJO 类来生成 XML。

我可以在上面的任何地方进行一些更改以生成具有所需 CDATA 属性的 XML 吗?

注意:我已经尝试过 EclipseLink Moxy(@XmlData),它没有与 OXM 集成。我希望在我的代码中不使用第三方 jar 来实现这一点。

0 投票
1 回答
4263 浏览

maven - maven-jaxb2-plugin 失败,必须存在 JAXB 版本属性

我有以下配置maven-jaxb2-plugin

它失败了:

org.xml.sax.SAXParseException;systemId:文件:/home/hasancansaral/workspace/company/domain/src/main/xsd/delivery.wsdl;行号:2;列号:366;必须存在 JAXB 版本属性

如果我通过 IntelliJ IDEA 运行插件或做一个简单的mvn clean jax2b:generate. 但是,使用可以在此处找到的模式,该操作是成功的,所以我怀疑我的 wsdl 模式实际上格式不正确,我暂时无法公开,但可以通过消息提供(我知道这没有多大帮助按原样公开,但如果问题出在架构中,我将在此处发布相关的问题部分)。

注意: SOAP UI 也会验证模式。

注意 2:jax2b-maven-plugin和 都存在相同的错误maven-jax2b-plugin

0 投票
1 回答
983 浏览

java - SunCertPathBuilderException => 带有证书的 Maven JAXB2 生成

我正在使用 maven-jaxb2 来生成类以调用 Web 服务。

wsdl 需要一个正确安装在我的机器上的证书。我可以用我的浏览器访问 wsdl。

我使用 properties-maven-plugin 添加了 2 个属性

我通过以下方式创建了我的 jks 文件:

当我触发 mvn:generate-sources 时,弹出以下错误:

我究竟做错了什么?

0 投票
0 回答
182 浏览

maven - 从 xsd 生成的代码不会编译

我正在使用这个 Maven 插件:

和我提供的一个xsd。代码生成过程似乎工作正常,我最终得到了一个 ObjectFactory 和另一个代表 xsd 中定义的对象的类 (GoldenSource.java)。一切看起来都不错。

但是,稍后在我的构建过程中尝试构建生成的类时,我会遇到编译错误,即:

我检查了它抱怨的特定符号,它就在那里,作为 GoldenSource 中的一个公共静态内部类

我已经尝试过使用 java 1.7.0_45 和 1.8.0_51 中的 xjc 以及不同的 jaxb 插件,但没有任何区别。

在同一个项目中,我有另一个 xsd 可以按预期生成类。两者之间的一个区别主要是,可以工作的 xsd 只有 148 行长,而不能工作的 xsd 有 7026 行长。某处有大小限制吗?

另一个区别是工作的 xsd 不包含任何嵌套的 complexTypes,而不构建的 xsd 包含负载。这个地方有限制吗?

0 投票
1 回答
575 浏览

java - JAXB2 为可选属性生成带有原始类型的 getter/setter

我们正在使用 jaxb2 从一些外部数据的 xml 模式定义生成 Java 代码。该项目相当古老,使用了 maven-jaxb-plugin 1.1.1。我们想更新到也将使用 jaxb2 的 jaxb2-maven-plugin,但我们发现生成的代码存在一些差异。具体来说,我们有以下形式的属性

映射到Integer生成代码中的字段。

但是,jaxb2 生成具有原始类型而不是可为空类型的 getter 和 setter:

然而,我们当前的代码假设getNum返回一个可以为空的装箱类型,并且还在单元测试中测试它,单元测试失败并出现空指针异常。

有没有办法为可选属性生成具有可为空类型的 getter/setter?xsd 文件是由外部供应商提供的,所以我不想修改它们。我们没有设置optionalProperty<globalBindings>所以该值是默认值wrapper

0 投票
2 回答
5530 浏览

java - 无法使用 codehaus.mojo jaxb2-maven-plugin 创建 java 类

我有一个基于 Spring 的 Web 应用程序,我试图在其中使用 SOAP 服务。我为此使用 jaxb2-maven-plugin(org.codehaus.mojo)。但是,我看到了一个空的 jaxb2 文件夹,该文件夹在 target 下,我没有看到其中的任何 java 类。我将 wsdl 正确放置在资源文件夹本身下。

下面是在 pom.xml 中创建的插件配置

以下是我运行时的日志"maven install"

它说在日志中解析和编译模式,但我没有看到在日志中创建了任何 java 类,我看到一个空的 jaxb2 文件夹和另一个空的生成源文件夹被创建。请参考下图:

在此处输入图像描述

0 投票
1 回答
408 浏览

java - 使用 / 在属性值中的 JAXB XML 解组

当像“/”这样的一些特殊字符包含在一个属性的值中时,我在解组 XML 文件时遇到问题,如下所示:

我正在使用库 woodstox-core (v5.0.3) 和 stax2-api (3.1.4)

属性值在 XSD 中定义为规范化字符串,我认为它允许字符“/”:

但是在进行 unmarshal 调用时,会抛出异常:

这里有一个例外:

我还需要定义什么来接受这些字符(UTF-8 除外)还是根本不允许?

提前谢谢了!

0 投票
2 回答
1727 浏览

java - 如何使 jaxb 插件使用 OffsetDateTime

我们有一个带xs:dateTime字段的 xsd。这是我们内部的 API,我们可以保证始终包含偏移数据,因此它与 ISO-8601 兼容。例如:

2016-01-01T00:00:00.000+01:00

目前,jaxb2 插件映射xs:dateTime到 type 的字段XMLGregorianCalendar。如何配置插件,以便它使用 OffsetDateTime

我不在乎解决方案是否适用于maven-jaxb2-pluginjaxb2-maven-plugin或者cxf-codegen-plugin,我们将使用任何有效的方法。

0 投票
2 回答
1267 浏览

eclipse - jaxb2-maven-plugin 一个 m2e 连接器

从 repo 清除结帐/克隆后,我在执行 jaxb2-maven-plugin xjc 目标时在 eclipse 中收到此错误。在“更新 Maven 配置”之后,代码仍然没有生成。在我的 neon3 eclipse(4.6.3) 中,我已经安装了 m2e 插件(1.7.1) 以及“用于 jaxb2 的 m2e 连接器”(4.0.0)

在同一个 pom.xml 中,它在生命周期映射下标记为

这里表示位串连接器应该支持 jaxb2-maven-plugin,在作者的这篇评论中,我可以看到自版本 1.0.3.201107311209 以来就有支持。尽管如此,在作者主页上还是说明了

插件:org.codehaus.mojo:jaxb2-maven-plugin

http://mojo.codehaus.org/jaxb2-maven-plugin

(注意:jaxb2-maven-plugin 1.5+ 版不需要)

我应该使用哪个 m2e 连接器或 pom.xml 配置来使 jaxb2-maven-plugin 在 eclipse 中工作(意思是,它将在更新配置的 generate-sources 阶段生成 surces 并将生成的文件夹添加到类路径中)?

0 投票
2 回答
2226 浏览

xml - JAXB 绑定 - 将 typesafeEnumBase 设置为空(将枚举转换为字符串)

根据链接

如果 typesafeEnumBase 设置为 xsd:string,这将是一种全局方式来指定所有直接或间接从 xsd:string 派生并具有枚举方面的简单类型定义应默认绑定到类型安全枚举。如果 typesafeEnumBase 设置为 空字符串 "",则默认情况下不会将简单类型定义绑定到类型安全枚举类。typesafeEnumBase 的值可以是除 xsd:boolean和两种二进制类型之外的任何原子简单类型定义。

所以我设置binding.xjb了以下内容:

并且在运行时jaxb2-maven-plugin出现以下异常:

据我了解,即使文档如此说明,我也无法将空字符串设置""typesafeEnumBase。文档还提到它不能是xsd:boolean.

我想要的只是将以下内容转换Stringenum

一个相关的 SO 问题在这里,但由于我无法设置空字符串""或将xsd:boolean值设置typesafeEnumBase为对我来说没有任何答案(都尝试过)。