怎么调用外部webservice

如题所述

直接使用http协议就可以,但是必须准守webservice的规范。

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

web广泛用到的技术:
TCP/IP:通用网络协议,被各种设备使用
HTML(标准通用标记语言下的一个应用):通用用户界面,可以使用HTML标签显示数据
.NET: 不同应用程序间共享数据与数据交换
Java:写一次可以在任何系统运行的通用编程语言,因为java具有跨平台特性
XML(标准通用标记语言下的一个子集):通用数据表达语言,在web上传送结构化数据的容易方法
他们的特点是其开放性,跨平台性,开放性正是Web services的基础。
近几年来,Internet的迅猛发展使其成为全球信息传递与共享的巨大的资源库。越来越多的网络环境下的Web应用系统被建立起来,利用HTML、CGI等Web技术可以轻松地在Internet环境下实现电子商务、电子政务等多种应用。然而这些应用可能分布在不同的地理位置,使用不同的数据组织形式和操作系统平台,加上应用不同所造成的数据不一致性,使得如何将这些高度分布的数据集中起来并得以充分利用成为急需解决的问题。
随着网络技术、网络运行理念的发展,人们提出一种新的利用网络进行应用集成的解决方案——Web Service。Web Service是一种新的Web应用程序分支,其可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。因此,Web Service是构造分布式、模块化应用程序和面向服务应用集成的最新技术和发展趋势。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-16
package com.hj.services.webservices;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class WebServicesClient {
public static void main(String[] args) throws Exception {
Service sv = new Service(); //new 一个服务
Call call = (Call) sv.createCall(); //创建一个call对象
call.setTargetEndpointAddress(new URL("http://192.168.200.39:8080/creazy")); //设置要调用的接口地址以上一篇的为例子
call.setOperationName(new QName("getUsers")); //设置要调用的接口方法
call.addParameter("id", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);//设置参数名 id 第二个参数表示String类型,第三个参数表示入参
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//返回参数类型
//开始调用方法,假设我传入的参数id的内容是1001 调用之后会根据id返回users信息,以xml格式的字符串返回,也可以json格式主要看对方用什么方式返回
String result = (String) call.invoke(new Object[]{"1001"});
System.out.println(result);//打印字符串
Document doc = DocumentHelper.parseText(result);//转成Document对象
Element root = doc.getRootElement();//用dom4j方式拿到xml的根节点然后打印结果信息
System.out.println("id="+root.element("UsersID").getText()+" name="+root.element("UsersName").getText()+" sex="+root.element("UsersSex").getText());

}
}