欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CXF利用wsdl2java生成客户端时Date日期类型转换

程序员文章站 2022-03-01 22:57:45
...


  在利用CXF的wsdl2java生成客户端时,默认情况下java的Date类型会自动转换成XMLGregorianCalendar,如果想生成Date类型,该怎样处理?答案如下:
   1.生成配置文件(一般取名为jaxb-binding-date.xml,可放在任意路径下,只是在运行wsdl2java时使用):
  
Xml配置代码 
<jaxws:bindings 
          xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" 
          xmlns:xs="http://www.w3.org/2001/XMLSchema" 
          xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 
  <jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema 
Xml配置代码 
    <span style="color: #ff0000;"> [@targetNamespace='http://service.test.com/']"></span> 
    <jxb:globalBindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
      <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"/> 
    </jxb:globalBindings> 
</jaxws:bindings> 
t;/jaxws:bindings> 
   这里需要注意的一点是:targetNamespace需要替换成自己的目标命名空间(可以在wsdl服务中看到)

   2.然后再在cmd下运行wsdl2java:
 
Java代码 
wsdl2java -p com.jd.crm.service.webserviceclient.complaintdetails -b D:\cxf\jaxb-binding-date.xml -d D:\cxf  http://localhost:9090/services/complaintDetails?wsdl 
    参数说明:
    -p: 生成的客户端代码所在的包路径
    -b: jaxb-binding-date.xml文件的路径
    -d: 生成的客户端代码的本地存放路径
     http://localhost:9090/services/complaintDetails?wsdl    ----  webservice服务端wsdl访问路径
相关标签: cxf webservice