WebService 入门案列(基于jdk1.7发布一个WebService服务)

目录导航

    • 什么是WebService
    • Web Service的关键技术和规则
      • XML:描述数据的标准方法.
      • SOAP:表示信息交换的协议(简单对象访问协议).
      • WSDL:Web服务描述语言.
      • UDDI:通用描述、发现与集成,他是一种独立于平台,基于XML语言的用于在互联网上描述商务的协议。
    • WebService实例
      • Service端
      • 打开浏览器,访问我们发布的地址,大家可以看到这样的效果:
      • 点击WSDL后面的连接地址便可以打开WSDL配置,访问结果如下:
      • 新建另一个Web工程 Client
        • wsimport命令(解析wsdl文件,生成客户端本地代码)
        • 客户端的调用
    • 备注

什么是WebService

WebService 入门案列(基于jdk1.7发布一个WebService服务)_第1张图片

  1. 什么是WebService呢?从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。
  2. Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。WebService平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用你喜欢的任何语言,在你喜欢的任何平台上写Web Service。
  3. WebService 为Internet 上的组件服务•通过网络提供,以URL定位方法调用•以Internet技术为基础•未來的分散式应用程序

WebService 入门案列(基于jdk1.7发布一个WebService服务)_第2张图片

Web Service的关键技术和规则

XML:描述数据的标准方法.

SOAP:表示信息交换的协议(简单对象访问协议).

WebService 入门案列(基于jdk1.7发布一个WebService服务)_第3张图片
示例:

POST /WebServices/IpAddressSearchWebService.asmx HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getCountryCityByIp"



  
    
      string
    
  

WSDL:Web服务描述语言.

WSDL(WebService Description Language):web 服务描述语言
就是一个xml文档,用于描述当前服务的一些信息(服务名称、服务的发布地址、服务提供的方法、方法的参数类型、方法的返回值类型等)

UDDI:通用描述、发现与集成,他是一种独立于平台,基于XML语言的用于在互联网上描述商务的协议。

  1. UDDI 目录条目是介绍所提供的业务和服务的XML 文件。UDDI 目录条目包括三个部分。
       “白页”介绍提供服务的公司:名称、地址、联系方式等等;
      “黄页”包括基于标准分类法的行业类别;
      “绿页”详细介绍了访问服务的接口,以便用户能够编写应用程序以使用 Web 服务。
      服务的定义是通过一个称为类型模型(或 tModel)的 UDDI文档来完成的。多数情况下,tModel包含一个WSDL 文件,用于说明访问 XMLWeb Service 的SOAP 接口,但是tModel非常灵活,可以说明几乎所有类型的服务。
  2. UDDI 目录还包含若干种方法,可用于搜索构建您的应用程序所需的服务。例如,您可以搜索特定地理位置的服务提供商或者搜索特定的业务类型。之后,UDDI目录将提供信息、联系方式、链接和技术数据,以便您确定能满足需要的服务。
  3. UDDI 允许您查找提供所需的Web 服务的公司。如果您已经知道要与谁进行业务合作,但尚不了解它还能提供哪些服务,这时该如何处理呢?WS-Inspection规范(英文)允许您浏览特定服务器上提供的XML Web Service 的集合,从中查找所需的服务。
    WebService 入门案列(基于jdk1.7发布一个WebService服务)_第4张图片

WebService实例

Service端

  1. 新建一个动态Web工程,代码如下
package Demo;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class MyService {
	public void sayHello(){
		System.out.println("hello webservcie!!!");
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Endpoint.publish("http://localhost:8081/TestWebService/Myservice", new MyService());//发布服务
        System.out.println("ServiceTest已启动");
	}

}
  1. 运行服务端

打开浏览器,访问我们发布的地址,大家可以看到这样的效果:

WebService 入门案列(基于jdk1.7发布一个WebService服务)_第5张图片

点击WSDL后面的连接地址便可以打开WSDL配置,访问结果如下:

WebService 入门案列(基于jdk1.7发布一个WebService服务)_第6张图片

新建另一个Web工程 Client

wsimport命令(解析wsdl文件,生成客户端本地代码)

WebService 入门案列(基于jdk1.7发布一个WebService服务)_第7张图片
如下图所示
WebService 入门案列(基于jdk1.7发布一个WebService服务)_第8张图片
WebService 入门案列(基于jdk1.7发布一个WebService服务)_第9张图片

注意:
如果你是调用网络上的Webservice服务,这wsimport时会报错,解决办法是:

把xml文件保存本地计算机,后替换里面的一两行代码即可,具体:
修改xml文件,将文件中所有出现的地方全部使用? 替换掉。

除了wsimport命令外,可以借助eclipse通过wsdl连接直接生成客户端调用代码参考博客

https://www.cnblogs.com/AlanLee/archive/2017/06/02/6933073.html

客户端的调用

新建一个动态Web工程,复制wsimport里面的java代码到工程中,注意新建工程包目录的时候根据要导入的java文件的包建立包结构,否则后面调用会报错!!!!!!
WebService 入门案列(基于jdk1.7发布一个WebService服务)_第10张图片
WebService 入门案列(基于jdk1.7发布一个WebService服务)_第11张图片
WebService 入门案列(基于jdk1.7发布一个WebService服务)_第12张图片
Client代码为:

package demo;

public class MyClient {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyService myService = new MyServiceService().getMyServicePort();
		
		myService.sayHello();
	}

}

成功:
WebService 入门案列(基于jdk1.7发布一个WebService服务)_第13张图片

备注

推荐一个webService服务的网站,里面有些天气服务,号码归属地查询等服务,有兴趣的可以去试试

http://www.webxml.com.cn/zh_cn/index.aspx

注意wsimport时要更改xml文件,具体参考上面步骤。。。

感觉不错请点个赞,收藏一波吧!!!!

后续将更新:webService的一个框架,apache下的 CXF ,有兴趣的话可以查看我的博客。。。

你可能感兴趣的:(java对象)