WebService-概述
从字面上理解,WebService就是基于Web的服务,那么什么又是Web服务呢?我们来看几个例子。 看了上面的例子,我们稍微总结一下:WebService是一种基于网络的服务,它可以方便的被第三方系统调用,来获取响应的服务(数据)。
下面我们先来看一个例子 @WebService(serviceName="firstWS",name="one",targetNamespace="http://www.zd.com",portName="portOne")
public class WSTestOne {
@WebMethod(operationName="helloGuy" //修改服务方法名称
)
public
@WebResult(name="returnMsg") //修改返回值名称
String sayHello(
@WebParam(name="yourName") //修改参数名称
String name){
return "hello,"+name+"!";
}
//注意:final方法不能被发布成一个服务
public static void main(String[] args) {
//利用EndPoint发布服务
Endpoint.publish("http://localhost:9999/ws/one",new WSTestOne());
}
}
通过访问这个地址http://localhost:9999/ws/one?wsdl就会得到下面的wsdl说明文档(由于缺少jar包,上面的程序并未运行,下面的wsdl是另一个demo的,格式相同,大家凑合看一下) 到这,我们就成功的发布了一个WebService服务,但是具体的细节还并不明朗,下面我们以这个例子为基准,对WebService的概念进行一下描述。 1)WSDL(WebService Description Language)。
2)SOAP(Simple Object Access Protocol) <soapenv:Envelope xmlns:q0="http://freedomcenter.com.cn" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
<q0:sayHelloTest>
<yourName>a</yourName>
</q0:sayHelloTest>
</soapenv:Body>
</soapenv:Envelope
下面是利用firebug截获的http请求头与相应头 从上面的数据来看,soap我们可以理解为一种在http基础上的 利用固定格式的xml文件来传输数据的一种方式。 现在我们对WebService有了一个基础的认识,并且已经成功发布了一个服务,那么我们怎么调用这个服务呢? 大致有以下四种方式可以调用一个WebService服务: wsimport是jdk自带的命令行工具,可以根据一个wsdl地址生产客户端代码。wsimport命令有三个常用的参数: 请看下面的例子 生成的class文件和java文件如下 包名为 利用这些文件我们就可以随意的调用服务了。 package com.zd.site.ws.test;
/** * @Description: WebService 客户端 * @Author:Zander * @CreateDate:Aug 8,2015 * @Company: */
public class WSClient {
public static void main(String[] args) {
//1.创建服务对象 2.得到port
CXFWSResumeService service = new CXFWSResumeServiceImplService().getCXFWSResumeServiceImplPort();
//3.调用服务方法,得到结果
String result = service.sayHelloTest("zender");
System.out.println(result);
}
}
太困了,后续补充…. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |