wscompile JAX-RPC生成Calendar对象而不是Date

时间:2012-01-17 08:08:44

标签: java web-services jax-rpc

使用JAX-RPC wscompile ANT任务从WSDL生成java类时遇到问题。

我的蚂蚁脚本:

<taskdef name="wscompile" classname="com.sun.xml.rpc.tools.ant.Wscompile" classpathref="jaxrpc.classpath"/>
<taskdef name="wsdeploy" classname="com.sun.xml.rpc.tools.ant.Wsdeploy" classpathref="jaxrpc.classpath"/>
<wscompile
        fork="true"
        base="${target.jaxrpc.dir}"
        server="true"
        client="false"
        features="documentliteral"
        model="${target.jaxrpc.dir}/model.xml.gz"
        debug="true"
        keep="true"
        verbose="true"
        config="${src.main.config.dir}/jaxrpc-service-config.xml">
    <classpath refid="jaxrpc.classpath"/>
</wscompile>

在我的wsdl中有Date类型对象,问题是JAX-RPC生成Calendar对象。有没有办法设置一些标志或以某种方式强制JAX-RPC生成Date对象?

1 个答案:

答案 0 :(得分:1)

这是因为Enterprise Web Services 1.1规范定义了Java类和XML类型之间的默认映射。但是,您可以更改应用程序的默认映射。您可以通过编辑元素JAX-RPC映射的内容来更改映射文件。在您的情况下,您必须进行以下更改:

    <java-wsdl-mapping>
      ...
       <java-xml-type-mapping>
       <java-type>java.util.Date</java-type>
      <root-type-qname xmlns:qn="http://www.w3c.org/2001/XMLSchema">qn:dateTime</root-type-qname>
     </java-xml-type-mapping>
      ...
    <java-wsdl-mapping>