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

发布时间 - 2026-01-11 03:22:24    点击率:

这一篇将要解决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  # java  # 调用wcf服务  # Java调用CXF WebService接口的两种方式实例  # Java动态获取实现某个接口下所有的实现类对象集合  # java后台实现支付宝支付接口和支付宝订单查询接口(前端为APP)  # Java利用Swagger2自动生成对外接口的文档  # Java 调用Restful API接口的几种方式(HTTPS)  # java中接口(interface)及使用方法示例  # Java如何基于wsimport调用wcf接口  # 这一  # 这三  # 这是  # 我是  # 就会  # 是在  # 在这里  # 如果您  # 成了  # 在我  # 才是  # 不太  # 那么多  # 右键  # 抛砖引玉  # 无意中  # 实体类  # 可就  # 能把  # 这篇文章 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  香港服务器网站推广:SEO优化与外贸独立站搭建策略  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何快速生成凡客建站的专业级图册?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Linux系统命令中screen命令详解  网站制作壁纸教程视频,电脑壁纸网站?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何有效防御Web建站篡改攻击?  Python文件异常处理策略_健壮性说明【指导】  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Laravel如何实现文件上传和存储?(本地与S3配置)  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  详解Android中Activity的四大启动模式实验简述  简单实现Android文件上传  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  phpredis提高消息队列的实时性方法(推荐)  活动邀请函制作网站有哪些,活动邀请函文案?  如何快速搭建高效香港服务器网站?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  php485函数参数是什么意思_php485各参数详细说明【介绍】  zabbix利用python脚本发送报警邮件的方法  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何用西部建站助手快速创建专业网站?  LinuxCD持续部署教程_自动发布与回滚机制  网站图片在线制作软件,怎么在图片上做链接?  Android GridView 滑动条设置一直显示状态(推荐)  焦点电影公司作品,电影焦点结局是什么?  如何快速搭建高效服务器建站系统?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  如何快速生成橙子建站落地页链接?  js实现获取鼠标当前的位置  如何快速生成可下载的建站源码工具?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  西安专业网站制作公司有哪些,陕西省建行官方网站?  Laravel安装步骤详细教程_Laravel环境搭建指南  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  如何在宝塔面板创建新站点?  Laravel如何使用Gate和Policy进行授权?(权限控制)  ,南京靠谱的征婚网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  手机软键盘弹出时影响布局的解决方法  简历在线制作网站免费版,如何创建个人简历?