用Java客户机调用Web服务: J2SE和J2EE环境中Web服务客户机简介

Web 服务的力量在于互操作性。由于业界在 Web 服务技术方面(SOAP、WSDL、UDDI)的协作,更具体地说,是由于 Web 服务互操作性组织(Web Services Interoperability organization,WS-I.org)的工作,Web 服务才可以与其他的 Web 服务进行交互,而不管 Web 服务开发和运行在哪一个平台上(比如是 Microsoft .NET 还是 IBM WebSphere)。Web 服务客户机分为多种类型,比如另一个 Web 服务、用脚本语言编写的客户机、C# 客户机、Java 客户机等等。本文重点讲解 Java 客户机,它可以用于访问任何遵循 Web 服务规范的 Web 服务(不仅仅是 Java Web 服务)。通过阅读本文,您将了解到需要用来通过不同的查找和访问方法调用相同的 Web 服务的 Web 服务客户机代码。本文所用的示例是“Hello” Web 服务,它提供了“getGreeting”操作。这种操作接受一个字符串参数(例如Jane),然后返回一句问候语“Hello Jane!”。

Web 服务角色

这一部分将描述调用 Web 服务的过程。Web 服务提供者用 Web 服务描述语言(Web Services Description Language,WSDL)文档来描述 Web 服务。Web 服务一般发布到统一描述、发现和集成(Universal Description, Discovery and Integration,UDDI)注册中心。Web 服务请求者在 UDDI 注册中心查找 Web 服务,绑定到 Web 服务,然后调用它。Web 服务角色显示在 图1中。本文将重点讲解从服务请求者到服务提供者的水平箭头(绑定)。本文将把请求者称为 客户机,它也可以称为 消费者。

用于

Java 技术标准的开发随着 Java 规范提案(Java Specification Request,JSR)提交给Java Community Process(JCP)而出现。两个 JSR 涵盖了 Java Web 服务体系结构:

JSR 101: 用于基于 XML 的 RPC 的 Java API(Java API for XML based RPC,JAX-RPC)

JSR 109: 实现企业 Web 服务(Implementing Enterprise Web services)

两个规范提供了厂商的实现的一致性和互操作性需求。

JAX-RPC —— Java 到 XML 和 XML 到 Java 映射 API

JAX-RPC 为基于 XML 的远程过程调用(Remote Procedure Call,RPC)和 Java 应用程序编程接口(Java Application Programming Interface,API):

WSDL 到 Java 和 Java 到 WSDL 映射:例如,将 WSDL 端口类型映射到 Java 服务端点接口(Java Service Endpoint Interface,SEI)。

XML 数据类型到 Java 数据类型和 Java 数据类型到 XML 数据类型映射,包括简单类型、复杂类型和数组。

除了 XML 映射之外,JAX-RPC 还定义了服务器端编程模型和 API,我将在后面的部分中更详细地介绍它。AX-RPC 1.1 根据 Web 服务互操作性组织(Web Services Interoperability organization,WS-I)基本概要版本 1.0(Basic Profile version 1.0)添加了互操作性需求。

JSR 109 —— J2EE 环境的 API

JSR 109 指定了 Java 2 Enterprise Edition(J2EE)环境的 Web 服务编程模型和体系结构。JSR 109 构建在 SOAP 1.1 和 WSDL 1.1 的基础上,它涵盖了 J2EE 环境中 JAX-RPC 的使用( 图 2)。它还定义了 J2EE 应用程序服务器中的部署模型。JSR 109 的客户端编程模型(我将在下面的几个部分中介绍)符合 JAX-RPC。

时间: 2024-11-03 06:26:38

用Java客户机调用Web服务: J2SE和J2EE环境中Web服务客户机简介的相关文章

android 服务-Android想让应用中的服务自启动

问题描述 Android想让应用中的服务自启动 Android想让应用中的服务自启动,在别的设备上都可以,但在小米盒子上是不可以的,小米盒子可以监听到开机启动广播,但在广播里启动不了服务,这是什么问题,如果是MIUI系统的问题,怎么解决呢?系统版本是Android 4.4.2 解决方案 http://www.open-open.com/lib/view/open1396333370575.html 解决方案二: Android自启动应用android 开机自启动服务或应用 解决方案三: 建议启动

Java跨语言调用实现方案

Java 跨语言实现方案 背景: 在大型分布式 java 应用中,为了方便开发者,通常底层的 rpc 框架都会做一些调用的封装,让应用层开发人员在开发服务的时候只用编写简单的 pojo 对象就可以了,如流行的 spring remoting , jboss remoting 等等,都有这样的效果. 随着业务的需要,可能上层应用希望采用非 java 技术,如 php , ruby on rails ,而由于 java gc 和内存模型的限制,可能有的底层服务又需要采用更高性能和更加灵活的技术,如果

ASP.NET Web API Selfhost宿主环境中管道、路由

前言 前面的几个篇幅对Web API中的路由和管道进行了简单的介绍并没有详细的去说明一些什么,然而ASP.NET Web API这个框架由于宿主环境的不同在不同的宿主环境中管道中的实现机制和路由的处理方式有着很大的不同,所以我会将对应不同的宿主环境来分别的做出简单的讲解.  ASP.NET Web API路由.管道     ASP.NET Web API 开篇介绍示例     ASP.NET Web API 路由对象介绍     ASP.NET Web API 管道模型     ASP.NET

java学习:调用 java web service

先写一个java的class:AwbModel(相当于要在web service中传输的实体对象) package webservicesample; public class AwbModel { private String _a1 = "_a1"; public String getA1() { return _a1; } public void setA1(String value) { this._a1 = value; } private String _A2 = &quo

http协议-(实习生,求大神赐教)java httpget来调用自己发布的web service

问题描述 (实习生,求大神赐教)java httpget来调用自己发布的web service public class HelloService { public String sayHello(String username) { return "Hello: " + username; } } 以上是发布的方法,发布后显示的路径是:http://localhost:8080/eclipse4WS/services/HelloService 我的方法名为sayHello() 发布结

请问web开发中,js调用DLL动态库,同一台pc机调用了不同的动态库,有的动态库调不到,怎么办?

问题描述 请问web开发中,js调用DLL动态库,同一台pc机调用了不同的动态库,有的动态库调不到,怎么办? 两个动态库,一个医保刷卡的,一个刷POS的,单独使用POS机,能正常使用,但是如果之前使用过医保刷卡机,就不能进入POS的动态库了,感觉像是冲突了一样,哪个大神能帮忙解决一下. 解决方案 两个动态库,一个医保刷卡的,一个刷POS的,单独使用POS机,能正常使用,但是如果之前使用过医保刷卡机,就不能进入POS的动态库了,感觉像是冲突了一样,哪个大神能帮忙解决一下.

配置-关于在Azure搭建一个完整的Java web项目的步骤并和azure各种服务集成

问题描述 关于在Azure搭建一个完整的Java web项目的步骤并和azure各种服务集成 如何把java web项目和azure提供的服务进行集成,有哪些配置?能不能提供教程 解决方案 最简单的当然是使用虚拟机服务,使用一个你熟悉的操作系统,比如ubuntu server.cent os或者windows server,然后用ssh.ps或者remote desktop登录进去.你原先怎么部署,现在还是怎么部署,一点都没有变化. 解决方案二: HiAzur官网提供了一些关于java开发的文档

怎样在J2EE组件中引用和查找Web服务

j2ee|web|web服务 本文将讨论怎么在J2EE组件中引用Web服务.并且通过JNDI来查找Web服务.在内容组织上,首先把一个EJB2.1无状态会话Bean发布成Web服务,然后开发基于JSP的Web服务客户端,最后着重介绍怎么在JSP的部署时引用Web服务,并且讨论怎么通过JNDI来查找和调用Web服务.阅读本文前您需要以下的知识和工具:J2EE1.4 SDK,并且会初步使用:掌握基本的JAX-RPC Web服务开发技能:了解JNDI的基本知识,能够使用它进行简单编程:一般的Java编

使用java web 在jsp文件及Class中连接MySQL和SQLsever 的驱动方法_java

--方法一 使用java web 在jsp文件中连接 连接MySQL的驱动 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="java.sql.Connection"%> <%@page import="java.sql.DriverManager"%>