Java web服务,xsd date而不是dateTime

Java web服务,xsd date而不是dateTime,java,web-services,xsd,wsdl,jax-rpc,Java,Web Services,Xsd,Wsdl,Jax Rpc,在使用JAX-RPC 1.1的JavaEE1.4中,如何公开web服务,使wsdl具有复杂类型(person),其中person的一个属性是一个日期,在wsdl/XSD中仅显示为一个日期(例如生日),而不是wsdl/XSD中的日期时间(不需要时间) 我希望wsdl中引用的xsd具有 <xs:element name="birthdate" type="xs:date"/> 而不是 <xs:element name="birthdate" type="xs:dateTime

在使用JAX-RPC 1.1的JavaEE1.4中,如何公开web服务,使wsdl具有复杂类型(person),其中person的一个属性是一个日期,在wsdl/XSD中仅显示为一个日期(例如生日),而不是wsdl/XSD中的日期时间(不需要时间)

我希望wsdl中引用的xsd具有

<xs:element name="birthdate" type="xs:date"/>

而不是

<xs:element name="birthdate" type="xs:dateTime"/>

当在wsdl/xsd中呈现时,java.util.Calendar和java.util.Date似乎都会导致xsd数据类型为dateTime

我知道JavaEE1.4没有JavaEE5那样的注释,但是有没有办法告诉web服务使用xs:date数据类型?

根据您的判断,日期和日期时间都映射到日历。似乎没有一个标准的方法只使用日期部分,当然你可以(有趣的是,参考文章的第二页说日期只用于日期,但第3页确认它映射到日历)


作为参考,还有一个类似的问题。

我认为您无法实现这一点,JAX-RPC只是没有灵活性(这就是为什么它在JavaEE 5中被杀死)


通常,我发现WSDL生成器没有足够的表达能力来生成我想要的WSDL,因此我倾向于使用它们来生成WSDL作为起点,然后修改结果。然后将WSDL作为静态文件而不是生成的文件进行服务器升级。这并不理想,但也没什么大不了的。

我确实找到了正确的方法


在WEB-INF/wsdl/(schemaname).xsd中,我将数据类型更改为date from dateTime,并重新部署了该服务,它与我现有的java.util.Calendar类型一起工作。

感谢您的回答,它很有帮助,但不能直接帮助我解决如何使WEB服务使用xs:date字段公开wsdl的问题。客户机应用程序请求wsdl只公开日期,而不是日期时间。