问题标签 [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.
java - 使用 org.springframework.oxm jaxb2marshaller 附加 CDATA
在使用 jaxb2marshaller 使用 CDATA 将几个元素编组为 XML 时,我遇到了很大的麻烦。我已经完成了以下解决方案:
还有更多,但找不到合适的解决方案。他们要么告诉切换到旧的 JAXB 实现,要么使用 MOXY。但是,这不是我的要求。我已经使用 OXM 库实现了以下两个类,并希望生成一个 XML,其中很少有元素需要附加 CDATA。
和
在主类中:
以及一个带有 setter 和 getter 的简单 POJO 类来生成 XML。
我可以在上面的任何地方进行一些更改以生成具有所需 CDATA 属性的 XML 吗?
注意:我已经尝试过 EclipseLink Moxy(@XmlData),它没有与 OXM 集成。我希望在我的代码中不使用第三方 jar 来实现这一点。
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
。
java - SunCertPathBuilderException => 带有证书的 Maven JAXB2 生成
我正在使用 maven-jaxb2 来生成类以调用 Web 服务。
wsdl 需要一个正确安装在我的机器上的证书。我可以用我的浏览器访问 wsdl。
我使用 properties-maven-plugin 添加了 2 个属性
我通过以下方式创建了我的 jks 文件:
当我触发 mvn:generate-sources 时,弹出以下错误:
我究竟做错了什么?
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 包含负载。这个地方有限制吗?
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
。
java - 使用 / 在属性值中的 JAXB XML 解组
当像“/”这样的一些特殊字符包含在一个属性的值中时,我在解组 XML 文件时遇到问题,如下所示:
我正在使用库 woodstox-core (v5.0.3) 和 stax2-api (3.1.4)
属性值在 XSD 中定义为规范化字符串,我认为它允许字符“/”:
但是在进行 unmarshal 调用时,会抛出异常:
这里有一个例外:
我还需要定义什么来接受这些字符(UTF-8 除外)还是根本不允许?
提前谢谢了!
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-plugin
,jaxb2-maven-plugin
或者cxf-codegen-plugin
,我们将使用任何有效的方法。
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 并将生成的文件夹添加到类路径中)?
xml - JAXB 绑定 - 将 typesafeEnumBase 设置为空(将枚举转换为字符串)
根据链接
如果 typesafeEnumBase 设置为 xsd:string,这将是一种全局方式来指定所有直接或间接从 xsd:string 派生并具有枚举方面的简单类型定义应默认绑定到类型安全枚举。如果 typesafeEnumBase 设置为 空字符串 "",则默认情况下不会将简单类型定义绑定到类型安全枚举类。typesafeEnumBase 的值可以是除 xsd:boolean和两种二进制类型之外的任何原子简单类型定义。
所以我设置binding.xjb
了以下内容:
并且在运行时jaxb2-maven-plugin
出现以下异常:
据我了解,即使文档如此说明,我也无法将空字符串设置""
为typesafeEnumBase
。文档还提到它不能是xsd:boolean
.
我想要的只是将以下内容转换String
为enum
一个相关的 SO 问题在这里,但由于我无法设置空字符串""
或将xsd:boolean
值设置typesafeEnumBase
为对我来说没有任何答案(都尝试过)。