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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |