`

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

 
阅读更多

  在利用CXF的wsdl2java生成客户端时,默认情况下java的Date类型会自动转换成XMLGregorianCalendar,如果想生成Date类型,该怎样处理?答案如下:

   1.生成配置文件(一般取名为jaxb-binding-date.xml,可放在任意路径下,只是在运行wsdl2java时使用):

   

<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
       [@targetNamespace='http://service.test.com/']">
      <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>
</jaxws:bindings>

   这里需要注意的一点是:targetNamespace需要替换成自己的目标命名空间(可以在wsdl服务中看到)

 

   2.然后再在cmd下运行wsdl2java:

  

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访问路径

分享到:
评论
5 楼 penwei 2012-12-19  
cwfmaker 写道
penwei 写道
cwfmaker 写道
penwei 写道
这段配置放到什么位置地方?

可以放在任何地方,只需要在运行wsdl命令的时候,参数里面添加就行,比如:
-b D:\cxf\jaxb-binding-date.xml

再我的程序中不会用到wsdl命令,现在的情况是:例如我的服务端已经写好了接口add(Entity po ),在我的业务客户端调用这个接口,传递的po中包含一个DateTime属性,服务端接收到这个po后DateTime这个属性的值为空,其他的String\Long...类型的对象都有值!所以我实在看不出你的这个配置文件放到哪儿?

你生成的客户端代码里的package-info类

@javax.xml.bind.annotation.XmlSchema(namespace = "http://webservice.service.crm.***.com/")
package com.***.crm.service.webserviceclient.complaintdetails;


是否有上面那个注解?

我们没有通过哦wsdl文件生成客户端,
4 楼 cwfmaker 2012-12-18  
penwei 写道
cwfmaker 写道
penwei 写道
这段配置放到什么位置地方?

可以放在任何地方,只需要在运行wsdl命令的时候,参数里面添加就行,比如:
-b D:\cxf\jaxb-binding-date.xml

再我的程序中不会用到wsdl命令,现在的情况是:例如我的服务端已经写好了接口add(Entity po ),在我的业务客户端调用这个接口,传递的po中包含一个DateTime属性,服务端接收到这个po后DateTime这个属性的值为空,其他的String\Long...类型的对象都有值!所以我实在看不出你的这个配置文件放到哪儿?

你生成的客户端代码里的package-info类

@javax.xml.bind.annotation.XmlSchema(namespace = "http://webservice.service.crm.***.com/")
package com.***.crm.service.webserviceclient.complaintdetails;


是否有上面那个注解?
3 楼 penwei 2012-12-17  
cwfmaker 写道
penwei 写道
这段配置放到什么位置地方?

可以放在任何地方,只需要在运行wsdl命令的时候,参数里面添加就行,比如:
-b D:\cxf\jaxb-binding-date.xml

再我的程序中不会用到wsdl命令,现在的情况是:例如我的服务端已经写好了接口add(Entity po ),在我的业务客户端调用这个接口,传递的po中包含一个DateTime属性,服务端接收到这个po后DateTime这个属性的值为空,其他的String\Long...类型的对象都有值!所以我实在看不出你的这个配置文件放到哪儿?
2 楼 cwfmaker 2012-12-17  
penwei 写道
这段配置放到什么位置地方?

可以放在任何地方,只需要在运行wsdl命令的时候,参数里面添加就行,比如:
-b D:\cxf\jaxb-binding-date.xml
1 楼 penwei 2012-12-14  
这段配置放到什么位置地方?

相关推荐

    使用cxf wsdl2java生成webservice客户端

    使用cxf wsdl2java生成webservice客户端命令

    使用CXF: Java 2 WSDL

    3. **CXF的Wsdl2Java工具**:CXF提供了一个名为`wsdl2java`的命令行工具,可以将WSDL文档转换为Java源代码,反之亦然。在本例中,我们关注的是反向过程,即从Java代码生成WSDL。 4. **配置CXF环境**:使用CXF的工具...

    WSDL2Java--根据wsdl生成Java客户端工具

    而`WSDL2Java`工具正是基于这样的需求应运而生,它能够将一个WSDL文件转换为Java客户端代码,让开发者可以轻松地调用远程Web服务。 ### WSDL2Java的工作原理 `WSDL2Java`工具主要遵循以下步骤: 1. **解析WSDL...

    wsdl2java 生成wsdljava客户端所需要的包

    在压缩包`lib`中,很可能包含了生成Java客户端时所必需的一些依赖库,例如Apache CXF的运行时库、JAXB库(用于XML到Java对象的转换)以及其他可能的第三方库。确保你的项目构建系统(如Maven或Gradle)正确地把这些...

    利用CXF的wsdl2java来建立Web Service.

    本文将深入探讨如何利用CXF的`wsdl2java`工具从WSDL(Web Services Description Language)文件生成Java客户端和服务端代码,从而快速构建Web服务。 首先,我们需要理解WSDL。WSDL是一种XML格式的规范,它定义了Web...

    apache CXF wsdl2java工具使用说明

    CXF 的一大亮点是提供了强大的工具链,其中包括 `wsdl2java` 工具,它可以从 WSDL 文件自动生成 Java 客户端和服务端代码。 #### 二、安装与配置 ##### 2.1 下载 Apache CXF 访问 Apache CXF 官方网站 ...

    利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 SpringBoot实现登陆验证调用.rar

    利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 Java实现登陆验证调用 压缩包里包括需要的所有文件,供需要的同学使用 1.apache-cxf-3.3.7 2.SoapUI 5.4.0-EB 3.生成代码的教程 4.获取service调用的...

    CXF提供的wsdl2java工具创建客户端

    本文将详细介绍如何利用CXF提供的`wsdl2java`工具来创建一个客户端应用,以调用远程的Web服务。 #### 二、所需软件及其版本 在开始之前,确保您的系统上已安装以下软件: - **操作系统**:Windows XP SP3 - **JDK**...

    xfire根据WSDL生成客户端代码

    通过以上步骤,你就可以利用XFire根据WSDL文件轻松地生成客户端代码,与远程Web服务进行通信。然而,需要注意的是,随着技术的发展,XFire已不再维护,取而代之的是更现代的Apache CXF项目。尽管两者有相似之处,但...

    wsdl生成java代码工具

    - **命令行参数**:运行`wsdl2java`时,可以指定各种参数,比如指定输出目录 (`-d`)、选择代码生成模式 (`-frontend`) 或指定特定的绑定配置 (`-b`)。 - **修改路径**:根据实际项目需求,用户可能需要修改Wsdl2...

    wsdl2java生成工具

    WSDL2Java工具是Apache CXF框架的一部分,它允许开发者从一个WSDL文件自动生成Java客户端和服务端的源代码,极大地简化了Web服务的开发过程。 **一、WSDL2Java工具的作用** 1. **客户端代码生成**:当您有一个WSDL...

    wsdl生成服务的客户端调用代码

    总结来说,"wsdl生成服务的客户端调用代码"涉及到利用WSDL文件自动生成与Web服务交互所需的客户端代码,这样开发者就可以在自己的应用中方便地调用这些服务,而无需手动编写复杂的网络通信逻辑。不同的编程语言和...

    apache-cxf生成wsdl

    2. **使用CXF的wsdl2java工具**:CXF提供了一个名为`wsdl2java`的命令行工具,用于将WSDL转换为Java代码。在命令行中,你可以输入以下命令: ```bash wsdl2java -d /path/to/output/directory /path/to/your.wsdl...

    wsdl生成客户端

    2. **生成客户端代码**:使用对应的工具(如CXF的wsdl2java或JAX-WS的wsimport),将WSDL转换为本地语言的客户端代码。 3. **编译并运行**:编译生成的客户端代码,然后在你的应用中引入这些类,调用相应的方法即可...

    WebService的WSDL文件生成Java代码工具

    - 使用CXF的wsdl2java命令行工具,将WSDL文件转换为Java代码。命令格式如下: ``` cxf-codegen-plugin -wsdlLocation &lt;WSDL文件路径&gt; -d &lt;生成代码的目标目录&gt; ``` - 生成的代码包括服务接口、消息bean和SOAP...

    WSDL生成Web Service java客户端

    2. **使用工具生成Java客户端代码**:在Java中,我们可以使用Apache CXF、 Axis2 或 JAX-WS等库来从WSDL文件自动生成客户端代码。这些库提供命令行工具或IDE插件,例如使用Apache CXF的`wsdl2java`命令,可以将WSDL...

    把wsdl文件或地址转化成java代码工具

    使用CXF的wsdl2java命令行工具,开发者可以在命令行环境中执行转换,同样可以生成与WSDL文件对应的Java代码。 使用CXF的wsdl2java步骤如下: 1. 安装并配置Apache CXF环境。 2. 打开命令行,定位到CXF的bin目录。 ...

    wsdl2java工具

    `wsdl2java`是Apache CXF框架提供的一款命令行工具,它能够根据WSDL文件自动生成Java客户端和服务端代码,大大简化了Web服务的开发流程。这个工具支持两种方式来获取WSDL:文件路径和URL。 ### 使用WSDL2Java工具 ...

    WSDL2Java工具

    WSDL2Java工具是Apache CXF框架的一部分,它实现了WSDL到Java代码的转换,将服务接口描述转化为可执行的Java类,方便开发者在Java环境中调用或实现Web服务。 一、WSDL2Java的作用 1. 生成客户端存根(Stub):通过...

    开发CXF JAVA客户端

    3. **生成客户端代码**:如果已经有了服务端的WSDL(Web Service Definition Language)文件,我们可以使用CXF的WSDL2Java工具生成客户端代码。在命令行中,执行如下命令: ``` wsdl2java -d src/main/java ...

Global site tag (gtag.js) - Google Analytics