加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService专业术语以及入门程序

发布时间:2020-12-16 22:33:22 所属栏目:安全 来源:网络整理
导读:一.WebService概述 1.WebService,顾名思义就是基于Web的服务。 它使用 Web(HTTP) 方式 ,接收和响应外部系统的某种请求。 从而实现远程调用 . 2.我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网

一.WebService概述

1.WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用.

2.我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做, 只是简单调用了一下服务器上的一段代码而已
3.学习WebService可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.
简单理解:

(1)WebService就是两个系统的远程调用

(2)WebService之间的调用时跨语言的调用

二.名词解释

名词1:XML.Extensible Markup Language -扩展性标记语言
?XML,用于传输格式化的数据,是Web服务的基础。
?namespace-命名空间。
?xmlns=“http://itcast.cn” 使用默认命名空间。
?xmlns: itcast=“http://itcast.cn”使用指定名称的命名空间。
名词2:WSDL – WebService Description Language – Web服务描述语言。
?通过XML形式说明服务在什么地方-地址。
?通过XML形式说明服务提供什么样的方法 – 如何调用。
名词3:SOAP-Simple Object Access Protocol(简单对象访问协议)
?SOAP作为一个基于XML语言的协议用于有网上传输数据。
? SOAP = HTTP 的基础上 +XML 数据。
?SOAP是基于HTTP的。
?SOAP的组成如下:
? Envelope – 必须的部分。以XML的根元素出现。
?Headers – 可选的。
? Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。
简单理解:
WSDL:为客户端提供的一个说明书,便于调用者调用.说明书是从下往上看的.
SOAP协议:因为是在http上发数据,所以必须先遵循http协议,xml部门即SOAP协议,必须包含Envelope元素和Body元素

三.如何发布一个WebService?

1. Jdk1.6.0_21以后的版本发布一个WebService服务.(这里是服务端)
2.与Web服务相关的类,都位于javax.jws.*包中。
主要类有:
?@ WebService - 它是一个注解,用在类上指定将此类发布成一个 ws .
?Endpoint – 此类为端点服务类,它的方法 publish 用于将一个已经添加了 @ WebService 注解对象绑定到一个地址的端口上。
3.代码:
package cn.itcast.service;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;
/**
 * 将Java类标记为实现Web Servie,或者将Java接口标记定义Web Servie接口
 * @author asuspc
 *
 */
@WebService //注释:标记此类是一个Web服务类
public class HelloService {
	//一个标准的服务端必须定义一个非静态不能是final的方法
	public String sayHello(String name,int age){
		System.out.println("sayHello is called...");
		return "hello"+name;
	}
	public String sayHi(String name){
		System.out.println("sayHello is called...");
		return "hello"+name;
	}
	public static void main(String[] args) {//publish内部开启了一个新的线程
		Endpoint.publish("http://localhost:5678/hello",new HelloService());
		System.out.println("Server ready..");
	}
}
(1)启动服务后可以看到控制台打印的数据...Server ready..
(2)访问http://localhost:5678/hello?wsdl



四.客户端与服务端的交互

1.使用Java jdk自带的wsimport命令..可以再jre的bin目录查看到此命令..


2.点击回撤,可以再E盘的根目录下看到命令生成的代码..同时将命令生成的文件夹拷贝到myeclipse中




3.编写App测试类
package cn.itcast.service;
/**
 * 调用服务端的客户端:地址栏输入http://125.217.57.91:5678/hello?wsdl
 * @author asuspc
 *
 */
public class App {
	public static void main(String[] args) {
		HelloServiceService hss=new HelloServiceService();//<service name="HelloServiceService">
		HelloService soap = hss.getHelloServicePort();//<port name="HelloServicePort" binding="tns:HelloServicePortBinding">
		String sayHello = soap.sayHello("李卫康");
		System.out.println(sayHello);
		System.out.println(soap.getClass().getName());//这说明了soap的实现类是一个代理类
	}
}
4.App类是根据wsdl说明书得到的

5.运行结果
hello李卫康 com.sun.proxy.$Proxy22

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读