java - 生成xs :date instead of xs:dateTime for WebParam

标签 java xml web-services jaxb jax-ws

我有一个带有 Web 方法的 jax-ws Web 服务:

@WebMethod
void SetCurrentDate(Date date)

在生成的 wsdl 参数中,日期的类型为 xs:dateTime,但我需要 xs:date。 我尝试了 XmlGregorianCalendar,但它映射到 xs:anySimpleType,我也尝试了 @XmlSchemaType,但不允许使用参数。 如何使用 xsd:date 而不是 xsd:dateTime 生成 wsdl?

最佳答案

看起来唯一的方法是使用注释 @RequestWrapper (对于 jax-ws-impl 和 apache cxf):

@WebMethod
@RequestWrapper(className = "....SetCurrentDateRequest")
void SetCurrentDate(Date date)

和请求包装器:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "setCurrentDateRequest", propOrder = {
    "date"
})
public class SetCurrentDateRequest {

    @XmlSchemaType(name="date")
    protected Date date;

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}

CXF/JAXB Code-first service: modify XMLSchemaType of inputs

关于java - 生成xs :date instead of xs:dateTime for WebParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25518143/

相关文章:

Java - 在 try/catch 中执行 try/catch 是不好的做法吗?

java - 仅在序列化期间使用@JsonIgnore,而不是反序列化

android - Android studio 更新到 3.3 后奇怪的 XML 格式。如何获取 xml 的 android 样式格式?

android - 线上/线下形象管理策略

android - 从 phonegap android 应用程序调用本地 .asmx web 服务以获取数据?

Java Web Service后台进程更新服务数据

java - 进度更新较晚

java - 我怎样才能让这个 switch 语句识别整数?

python - 在 python 中处理 SOAP 类型异常的最佳方法是什么

xml - 根据属性值 XSLT 更改元素名称