使用xs:dateTime转换为XMLGregorianCalendar

时间:2018-01-12 20:09:22

标签: spring web-services wsdl cxf cxf-codegen-plugin

我们最近将旧的Java 7应用程序升级到Spring Boot和最新版本的Spring启动(以及将其移至Java 8)。重新使用在合同参数中使用xs:dateTime的Web服务后,它现在会在生成的客户端接口上生成错误。

抽象类javax.xml.datatype.XMLGregorianCalendar不能用作运行时类,因为它不是由非抽象类扩展的,它适合作为运行时类

这在以前的消费中从来都不是问题。有没有理由不能再使用XMLGregorianCalendar?我希望尽可能避免自定义绑定(从而保持XMLGregorianCalendar不必重构所有现有代码)。

WSDL方法输入:

<xs:complexType name="findGroupingsBySystem">
 <xs:sequence>
  <xs:element type="xs:string" name="theSystem" minOccurs="0"/>
  <xs:element type="xs:dateTime" name="theStartDate" minOccurs="0"/>
  <xs:element type="xs:dateTime" name="theEndDate" minOccurs="0"/>
 </xs:sequence>
</xs:complexType>

Java 8 Spring Boot 1.5.7使用cxf-spring-boot-starter 3.2.0

我在很多年前就看到了这个现有的条目:Web service code created by CXF is not legal because of XMLGregorianCalendar?

我的一个大问题是为什么现在不能正常工作(为什么我之前从未遇到过这个问题)?是否存在可以将其保留在界面中的依赖/等?如果没有,为什么默认情况下会生成这种方式?

0 个答案:

没有答案