java.util.Date属性呈现为XS:使用JAX-WS字符串中的xsd(阿帕奇CXF /地铁)

2019-09-29 12:29发布

我生成基于​​使用Apache CXF一个WSDL一些模型类。 然后我添加了一个JAXB bindingfile所有的xs转换:datetime和XS:日期元素java.util.date(而不是默认的XMLGregorianCalendar):

<jxb:javaType name="java.util.Date" xmlType="xs:date"
                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDate"
                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDate"/>
       <jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/>

这一切都工作得很好,所有的xs:日期和xs:completype元素的日期时间属性的java.util.Date产生。

当我尝试创建基于这些模型对象地铁JAX-WS服务的问题出现了。 在服务的.xsd文件字符串:在mycase所有java.util.Date字段被渲染为的dataType XS。

我无法找到故障原因是除了一个事实,相关模型的属性,一代又通过CXF,都标注有以下情况发生:

 @XmlElement(required = true, type = String.class)
    @XmlJavaTypeAdapter(Adapter1 .class)
    protected Date datumTijdBedrijfsdocument;

我可以想像的是,类型=“St​​ring.class”可以是为XS正在生成的所有属性的原因:字符串字段。

我当然可以手动编辑所有的对象,但我期待在地铁的Apache CFX的解决方案,以防止这个问题声明。

我希望你们能帮助我,因为这个问题在僵持位置让我

谢谢!

文章来源: java.util.Date property rendered as xs:string in xsd using JAX-WS (Apache CXF / Metro)