这一篇将要解决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这样的类型,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_详解JAVA调用WCF服务的示例代码相关推荐

  1. java同步异步调用_详解java 三种调用机制(同步、回调、异步)

    1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,jsPwwCe它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消 ...

  2. java lock unlock_详解Java中的ReentrantLock锁

    ReentrantLock锁 ReentrantLock是Java中常用的锁,属于乐观锁类型,多线程并发情况下.能保证共享数据安全性,线程间有序性 ReentrantLock通过原子操作和阻塞实现锁原 ...

  3. java system sleep_详解Java中的sleep()和wait()的区别

    详解Java中的sleep()和wait()的区别 对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序 ...

  4. java中priorityqueue_详解JAVA中priorityqueue的具体使用

    Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示.本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度, ...

  5. java中implement_详解JAVA中implement和extends的区别

    详解JAVA中implement和extends的区别 extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,Java中不支持多重继承,但是可以用接口来实 ...

  6. java中断runnable_详解Java 线程中断

    一.前言 大家肯定都使用过 Java 线程开发(Thread / Runnable),启动一个线程的做法通常是: new Thread(new Runnable( @Override public v ...

  7. java web ip_详解Java Web如何限制访问的IP的两种方法

    前一阵子因为在做项目时碰到了这个功能,现在好好总结一下,至于为什么要限制IP访问,我就不多说了.然后百度了一下,现在主要有两种方式去限制IP访问,第一种是最简单的方便的,第二种是通过过滤器来限制访问. ...

  8. java中getclass_详解java中this.getClass()和super.getClass()的实例

    详解java中this.getClass()和super.getClass()的实例 前言: 遇到this.getClass()和super.getClass()的返回值感到疑惑,经过探索豁然开朗. ...

  9. java 重定向 redirect_详解Java从后台重定向(redirect)到另一个项目的方法

    (1)通过ModelAndView跳转 @RequestMapping("alipayforward") public ModelAndView alipayforward(Htt ...

最新文章

  1. R语言使用psych包的describeBy函数计算不同分组(group)的描述性统计值(样本个数、均值、标准差、中位数、剔除异常均值、最小最大值、数据范围极差、偏度、峰度、均值标准差等)
  2. MongoDB副本集的搭建
  3. golang 字符串md5 生成方式
  4. 如何在ubuntu下安装合适的翻译词典
  5. “雏鹰”的最近感想……
  6. CAS去掉HTTPS认证
  7. react 交互_如何在React应用程序中跟踪用户交互
  8. linux系统可以安装搜狗输入法,在Arch Linux系统中安装搜狗输入法的方法
  9. ThreadLocal线程本地存储
  10. Python Bug: TypeError: a bytes-like object is required, not ‘str
  11. unity 凸包算法
  12. iphone 控制 android手机,Apple iPhone使用Teamviewer远程控制Android手机以实现各种操作,例如远程计时....
  13. python接口测试面试题
  14. 路由器不开机——维修更换MT7621AT CPU
  15. 中年,就是1个人演1部西游记
  16. tanlianjiyejiangemiao
  17. PicPick Pro v7.0.0 屏幕截图编辑工具解锁全功能单文件版
  18. 联想微型计算机b320,“蜗居”必备! 联想B320一体电脑评测
  19. JDBC---DAO层实现
  20. 连接远程计算机提示:“这可能是由于CredSSP加密数据库修正” 问题

热门文章

  1. Web站点下的Web Service读取此Web站点中的Session值
  2. G.Eating Together(LIS,LDS)
  3. html lt;ligt; 属性,HTML文件中lt;HRgt;标签各个属性的作用是什么?
  4. python多线程锁有没有优先级别_全面解析python线程优先级队列(queue)原理
  5. DataWorks搬站方案:Airflow作业迁移至DataWorks
  6. Stream is the new file
  7. DTCC 2020 | 阿里云张鑫:阿里云云原生异地多活解决方案
  8. 世界人工智能发展究竟到了什么水平 ?
  9. 工程师男友如何反窃听?趣聊密码学入门科普
  10. 在UE4中创建受《羞辱》启发的环境