• 技术文章 >Java >java教程

    JAVA调用WCF服务的方法介绍

    黄舟黄舟2017-09-22 11:13:39原创887
    这篇文章主要介绍了详解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调用WCF服务的方法介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:JAVA 介绍 方法
    上一篇:Java中序列化与ObjectOutputStream以及ObjectInputStream的详解 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java数据结构之单链表与OJ题• 一起来分析java设计模式之单例• 一文搞懂Java线程池实现原理• 详细介绍Java正则表达式之单字符匹配和预定义字符• Java总结分享之反射、枚举、Lambda表达式
    1/1

    PHP中文网