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