WebService

Posted Mr.Paul

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebService相关的知识,希望对你有一定的参考价值。

WebService到底是什么?

Web Service也叫XML Web Service。
WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。
一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,
反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。

 

SOAP:

WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,
并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。
SOAP提供了标准的RPC(远程过程调用协议)方法来调用Web Service

SOAP协议 = HTTP协议 + XML数据格式

打个比喻:
HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。

 

WebService开发:

Java方面的典型WebService框架包括:axis,xfire,cxf等,java ee服务器通常也支持发布WebService服务,例如JBoss。

 

java开发webservice的几种方式

1.Axis2
2.Apche CXF
3.JDK开发webservice
详情请访问以下地址
http://blog.sina.com.cn/s/blog_a0e7e34c0101959p.html

 

下面是一个简单的例子:

写在前面的话:
当两个人碰面后,产生了好感,如果需要得到双方的信息,那么双方的交流是必不可少的!应用程序也如此,
各个应用程序之间的交流就需要WebService来作为相互交流的桥梁!

(1)新建WebService服务端,并编写相应的方法,以供客户端调用,此处为getName()方法
(2)编写main方法,发布WebService服务
(3)浏览器访问地址(这里是http://localhost:9001/Service/Function?wsdl),确定WebService服务发布成功
(4)命令窗口,执行命令,生成相关类
(5)编写客户端测试类,调用服务端方法


(1)、新建WebService服务端 (2)、编写main方法,发布WebService服务

package WebService;

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

/**
* Created by Paul on 2016/3/28.
*/
@WebService
public class Function {

/**
* 该方法就是要暴露给其他应用程序调用的方法
* 供客户端调用的方法
* @param name 传入参数
* @return String 返回结果
*/
public String getName(String name){

return "My name is "+name;
}

public static void main(String[] args) {
/**
* ↓↓ 第一句很重要,用于发布服务端localhost为地址指向地址
* ↓↓ 9001为任意端口,但必须未被占用
* ↓↓ 第二个参数new的为本类的类名
* 运行main方法相当于发布WebService服务
*/
Endpoint.publish("http://localhost:9001/Service/Function",new Function());
System.out.println("Publish Success~");
}
}



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(3)浏览器访问地址(这里是http://localhost:9001/Service/Function?wsdl),确定WebService服务发布成功

WebService服务发布成功的截图:




(4)命令窗口,执行命令,生成相关类

格式:wsimport -s <src目录> -p <生成类所在包名> -keep <wsdl发布地址>
示例:
wwsimport -s D:\\IdeaWork\\src -p WebServiceClient.com.jin -keep
http://localhost:9001/Service/Function?wsdl
注意:
1)<src目录>地址不可含空格
2)<wsdl发布地址>不要漏了\'?wsdl\'

命令提示窗口执行命令截图:

 

执行完命令,生成的包结构截图:

 

(5)编写客户端测试类,调用服务端方法

测试类

 

package WebServiceClient.com.jin.test;

import WebServiceClient.com.jin.client.Function;
import WebServiceClient.com.jin.client.FunctionService;

/**
* Created by Paul on 2016/3/28.
*/
public class TestClient {
public static void main(String[] args) {
//初始化对象
Function function = new FunctionService().getFunctionPort();
//调用对象中的方法
String name = function.getName("Paul");
//打印返回结果
System.out.println(name);
}
}

























以上是关于WebService的主要内容,如果未能解决你的问题,请参考以下文章

C#动态调用webService出现 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。

Java RMI地址解析问题

当我们在webservice.asmx.cs中编写所有代码时,webservice.asmx有啥用?

自动生成webservice客户端代码后怎么调用

在idea中,怎么生成cxf webservice的客户端代码

如何调用webservice接口 ajax