java调用wcf_详解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这样的类型,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服务的示例代码相关推荐
- java同步异步调用_详解java 三种调用机制(同步、回调、异步)
1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,jsPwwCe它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消 ...
- java lock unlock_详解Java中的ReentrantLock锁
ReentrantLock锁 ReentrantLock是Java中常用的锁,属于乐观锁类型,多线程并发情况下.能保证共享数据安全性,线程间有序性 ReentrantLock通过原子操作和阻塞实现锁原 ...
- java system sleep_详解Java中的sleep()和wait()的区别
详解Java中的sleep()和wait()的区别 对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序 ...
- java中priorityqueue_详解JAVA中priorityqueue的具体使用
Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示.本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度, ...
- java中implement_详解JAVA中implement和extends的区别
详解JAVA中implement和extends的区别 extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,Java中不支持多重继承,但是可以用接口来实 ...
- java中断runnable_详解Java 线程中断
一.前言 大家肯定都使用过 Java 线程开发(Thread / Runnable),启动一个线程的做法通常是: new Thread(new Runnable( @Override public v ...
- java web ip_详解Java Web如何限制访问的IP的两种方法
前一阵子因为在做项目时碰到了这个功能,现在好好总结一下,至于为什么要限制IP访问,我就不多说了.然后百度了一下,现在主要有两种方式去限制IP访问,第一种是最简单的方便的,第二种是通过过滤器来限制访问. ...
- java中getclass_详解java中this.getClass()和super.getClass()的实例
详解java中this.getClass()和super.getClass()的实例 前言: 遇到this.getClass()和super.getClass()的返回值感到疑惑,经过探索豁然开朗. ...
- java 重定向 redirect_详解Java从后台重定向(redirect)到另一个项目的方法
(1)通过ModelAndView跳转 @RequestMapping("alipayforward") public ModelAndView alipayforward(Htt ...
最新文章
- R语言使用psych包的describeBy函数计算不同分组(group)的描述性统计值(样本个数、均值、标准差、中位数、剔除异常均值、最小最大值、数据范围极差、偏度、峰度、均值标准差等)
- MongoDB副本集的搭建
- golang 字符串md5 生成方式
- 如何在ubuntu下安装合适的翻译词典
- “雏鹰”的最近感想……
- CAS去掉HTTPS认证
- react 交互_如何在React应用程序中跟踪用户交互
- linux系统可以安装搜狗输入法,在Arch Linux系统中安装搜狗输入法的方法
- ThreadLocal线程本地存储
- Python Bug: TypeError: a bytes-like object is required, not ‘str
- unity 凸包算法
- iphone 控制 android手机,Apple iPhone使用Teamviewer远程控制Android手机以实现各种操作,例如远程计时....
- python接口测试面试题
- 路由器不开机——维修更换MT7621AT CPU
- 中年,就是1个人演1部西游记
- tanlianjiyejiangemiao
- PicPick Pro v7.0.0 屏幕截图编辑工具解锁全功能单文件版
- 联想微型计算机b320,“蜗居”必备! 联想B320一体电脑评测
- JDBC---DAO层实现
- 连接远程计算机提示:“这可能是由于CredSSP加密数据库修正” 问题
热门文章
- Web站点下的Web Service读取此Web站点中的Session值
- G.Eating Together(LIS,LDS)
- html lt;ligt; 属性,HTML文件中lt;HRgt;标签各个属性的作用是什么?
- python多线程锁有没有优先级别_全面解析python线程优先级队列(queue)原理
- DataWorks搬站方案:Airflow作业迁移至DataWorks
- Stream is the new file
- DTCC 2020 | 阿里云张鑫:阿里云云原生异地多活解决方案
- 世界人工智能发展究竟到了什么水平 ?
- 工程师男友如何反窃听?趣聊密码学入门科普
- 在UE4中创建受《羞辱》启发的环境