热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

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

这一篇将要解决java中调用WCF的问题,使用的依旧是上一篇中托管在IIS中的WCF服务,本来我是打算用axis来写这篇文章

这一篇将要解决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.结束语

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


推荐阅读
  • 最佳PHP源码加密工具推荐
    本文探讨了几款高效的PHP源码加密工具,旨在帮助开发者保护其代码免受未授权访问。文章不仅介绍了商业软件的选择,还提供了一些免费且实用的加密工具及其使用方法。 ... [详细]
  • 基于Spring Boot的家政服务平台毕业设计项目(含源代码)
    本文档介绍了如何搭建和运行一个基于Spring Boot的家政服务平台,旨在为计算机专业学生提供毕业设计参考。项目涵盖了从环境配置到核心功能实现的全过程。 ... [详细]
  • 本文汇总了一系列适合Java和PHP毕业设计的题目,涵盖多个领域,旨在帮助即将完成学业的学生们找到合适的项目方向。 ... [详细]
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 计算机架构基础 —— 冯·诺依曼模型
    本文探讨了计算机科学的基础——冯·诺依曼体系结构,介绍了其核心概念、发展历程及面临的挑战。内容涵盖早期计算机的发展、图灵机的概念、穿孔卡的应用、香农定理的重要性以及冯·诺依曼体系结构的具体实现与当前存在的瓶颈。 ... [详细]
  • 构建Struts 2 Web应用程序指南
    本文提供了一个详细的步骤指南,帮助开发者从零开始创建一个简单的Struts 2 Web应用程序,涵盖了从环境搭建到项目部署的全过程。 ... [详细]
  • Apache Tomcat 安装与目录解析
    本文详细介绍了如何在Windows系统上安装Apache Tomcat 8版本,并对其主要目录结构进行了说明。包括下载、解压、配置环境变量等步骤,以及如何通过检查端口占用情况解决启动问题。 ... [详细]
  • 本文详细介绍如何在MyEclipse开发环境中安装并配置Jad反编译插件,包括必要的文件下载及配置步骤。 ... [详细]
  • MQTT协议:轻量级消息传输的基石
    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种基于发布/订阅模式的轻量级通信协议,适用于低带宽、高延迟或不可靠的网络环境。该协议基于TCP/IP构建,由IBM在1999年首次推出,旨在通过最小化网络流量和代码量,为远程设备提供高效、可靠的消息传输服务。 ... [详细]
  • 本文介绍了如何利用Apache Digester库解决硬编码问题,通过创建自定义配置文件(如Struts配置文件)来动态调整应用程序的行为。文章详细描述了使用Apache Digester将XML文档转换为Java Bean对象的过程,并提供了具体的实现步骤。 ... [详细]
  • Eclipse 中 Java 项目的创建指南
    本文详细介绍了如何在 Eclipse IDE 中创建 Java 项目,包括从新建项目到编写第一个类的具体步骤。对于初学者来说,这是一篇非常实用的教程。 ... [详细]
  • 随着Spring框架的不断发展,其灵活性和可选性成为其显著特点。Java EE虽然专注于少数核心技术,但这种专注限制了更多创新解决方案的发展。Spring框架的出现打破了这一局面,不仅简化了Java EE,还通过持续的技术革新,为开发者提供了更多的选择和支持。 ... [详细]
  • 本文详细介绍了在MyEclipse和Eclipse中安装和配置Hibernate开发工具的方法,包括所需的插件和具体操作步骤。 ... [详细]
  • 在进行项目开发时,不小心更新了SVN数据导致本地未提交的代码丢失是一个常见的问题。本文介绍了一种通过Eclipse的本地历史记录功能来恢复这些未提交更改的方法。 ... [详细]
  • 使用MonkeyTalk实现Android自动化测试的Agent配置
    本文详细介绍了在MonkeyTalk框架下设置Android Agent的具体步骤,包括如何将Android项目转换为AspectJ项目,以及如何正确配置和集成MonkeyTalk的Agent库。 ... [详细]
author-avatar
经来泓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有