详解JAVA调用WCF服务的示例代码

 更新时间:2017年09月22日 10:15:00   作者:小白哥哥  
这篇文章主要介绍了详解JAVA调用WCF服务的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

这一篇将要解决java中调用WCF的问题,使用的依旧是上一篇中托管在IIS中的WCF服务,本来我是打算用axis来写这篇文章的,可就在我开始之前,无意中发现了在java包中自带的wsimport工具,用起来是极为爽快,而且也节省了配置axis的时间。所以,就它吧

其实在有了wsimport,在java调用wcf的时候是极为简单的,当然这是建立在使用不太复杂的服务的情况下,如果还要考虑安全验证、发布订阅等问题,还是相对复杂的,但是这三篇文章没准备写那么多,只是想能把跨平台这三个字真的应用在实践中。起一个抛砖引玉的作用吧。

1.开发必备

这么说,只要是做java开发的,都不用看这一个章节啦,jdk+eclipse,甚至可以不使用eclipse,因为上面提到的wsimport工具是在java安装后的bin目录的一个可执行程序。如果钥匙使用axis,eclipse才是必须的。

2.生成WCF客户端

使用的就是上面提到的wsimport,如果您正确的配置了java环境变量,就可以直接在控制台中使用了,简历文件夹x:/workspace/EmployeeManager/client

打开命令行,cd到以上建立的目录x:/workspace/EmployeeManager/,然后执行命令:

import –s client http://192.168.11.1/emp/EmployeeManagement.svc?wsdl,然后就会发现在目录下生成了若干文件,其中有对应的java实体类文件,比如Employee.java,还有复杂生成实体的ObjectFactory,因为在这里使用的不是基础类型String、Int等,而是类JAXBElement<SalaryDetail>这样的类型,ObjectFactory可以帮助我们生成这些类型。

3.开发程序

     1.在eclipse中新建JAVA项目,例如testproject

     2.右键项目中的src文件夹,选择Import

     3.点击General中的File System,单击Next

     4.在下一步中点击刚简历的目录,并全选所有文件夹

5.新建测试文件test.java

import org.datacontract.schemas._2004._07.contracts.*;
 import com.microsoft.schemas._2003._10.serialization.*;
 import org.tempuri.*;
 
 public class test {
 
   /**
   * @param args
   */
   public static void main(String[] args) {
     //使用ObjectFactory帮助生成实体类对象
     org.datacontract.schemas._2004._07.contracts.ObjectFactory factory=new org.datacontract.schemas._2004._07.contracts.ObjectFactory();
     Employee emp=factory.createEmployee();
     //设置属性,同样使用ObjectFactory帮助设置,因为这里的类型有别与基础类型
     emp.setId(factory.createEmployeeId("dev001"));
     emp.setName(factory.createEmployeeName("James White"));
     emp.setDepartment(factory.createEmployeeDepartment("Development"));
     
     //调用的方法略显古怪,需要注意
     EmployeeManagement empManagement=new EmployeeManagement();
     IEmployeeManagement iempManagement=empManagement.getBasicHttpBindingIEmployeeManagement();
     SalaryDetail salaryDetail=iempManagement.getSalaryOfLastMonth(emp);
     //输出结果
     System.out.println("Employee ID:"+salaryDetail.getId().getValue());
     System.out.println("Salary Date:"+salaryDetail.getDate().getMonth());
     System.out.println("Salary:"+salaryDetail.getSalary().toString());
     
   }
 
 }

运行程序,出结果

4.结束语

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java实现相同属性名称及相似类型的pojo、dto、vo等互转操作

    java实现相同属性名称及相似类型的pojo、dto、vo等互转操作

    这篇文章主要介绍了java实现相同属性名称及相似类型的pojo、dto、vo等互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 深入了解Spring的事务传播机制

    深入了解Spring的事务传播机制

    Spring事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。本文通过示例详细介绍了Spring的事务传播机制,需要的可以参考一下
    2022-09-09
  • SpringBoot 转发请求至指定页面的操作方法

    SpringBoot 转发请求至指定页面的操作方法

    这篇文章主要介绍了SpringBoot 转发请求至指定页面,需要使用@Controller,不可使用@RestController,@RestController相当于@Controller和@ResponseBody合在一起的作用,本文通过实例代码详细讲解,需要的朋友可以参考下
    2022-11-11
  • springboot 接口版本区分方式

    springboot 接口版本区分方式

    这篇文章主要介绍了springboot 接口版本区分方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java后台判断客户端是手机/PC并返回不同页面的实例

    java后台判断客户端是手机/PC并返回不同页面的实例

    下面小编就为大家分享一篇java后台判断客户端是手机/PC并返回不同页面的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 自定义log4j日志文件命名规则说明

    自定义log4j日志文件命名规则说明

    这篇文章主要介绍了自定义log4j日志文件命名规则说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • MyBatis-Plus里面的增删改查详解(化繁为简)

    MyBatis-Plus里面的增删改查详解(化繁为简)

    这篇文章主要给大家介绍了关于MyBatis-Plus里面的增删改查的相关资料,Mybatis-Plus是一个基于Mybatis的增强工具,可以简化Mybatis的开发,提高开发效率,需要的朋友可以参考下
    2023-07-07
  • MyBatis与Spring整合过程实例解析

    MyBatis与Spring整合过程实例解析

    这篇文章主要介绍了MyBatis与Spring整合过程实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 移除元素Java实现方式

    移除元素Java实现方式

    这篇文章主要介绍了移除元素Java实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Java俄罗斯方块小游戏

    Java俄罗斯方块小游戏

    这篇文章主要为大家详细介绍了Java俄罗斯方块小游戏,实现了俄罗斯的经典功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08

最新评论