| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> WebService相关 -> 正文阅读 |
|
[系统运维]WebService相关 |
1.关于概念 简单的说WebService就是一种跨编程语言和跨操作系统平台的远程调用技术。 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。 XML,SOAP和WSDL就是构成WebService的三大技术 。 WebService采用Http协议来在客户端和服务端之间传输数据。WebService使用XML来封装数据,XML主要的优点在于它是跨平台的。 WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议规定的。 WebService服务器端首先要通过一个WSDL文件来说明自己有什么服务可以对外调用。简单的说,WSDL就像是一个说明书,用于描述WebService及其方法、参数和返回值。 WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。
2.webservice 参数类型 1、基本数据类型 包括: String、Int32、Byte、Boolean、Int16、Int64、Single、Double、Decimal、 DateTime(类似XML中的timeInstant)、 DateTime(类似XML中的date)、DateTime(类似XML中的time)以及XmlQualifiedName(类似XML中的QName)。 枚举类型 比如: "public enum color { red=1, blue=2 }" 2、基础类型数组,枚举类型数组 上述类型的数组,比如 string[] 和 int[] 3、创建存储复杂对象的类(因为WebServices的复杂对象的传递,一定要借助第三方对象(即自定义对象)来实现) ? 传递List、Map、数组、自定义对象 ??前提:JavaBean的使用--- 必须是可序列化的。 需要向webservice传递的对象,其中属性也要支持序列化 4、传递图片: 方案一:转换成byte[]数组 方案二:生成Base64编码格式的字符串 建议的写法: 提供一个字符串型的参数,定义JSON格式的数据传递。 3.不同语言开发WebService (1)C#开发Webservice 在VS(任何版本)中新建一个网站,选择"ASP.NET Web服务"。将项目建好后,命名为Service。建好后你会发现VS已经将框架搭建好了 (2)Java开发WebService 用JAVA开发webservice的方式有很多种,我采用了最简单的一种,比较适合发布简单的服务。就是以servlet的方式将服务发布出去,为了方便起见,我将下载了一个Eclipse的Tomcat插件,将这个插件拷到eclipse的plugins文件夹下,打开Eclipse就可以看见tomcat的图标了,然后再windows->Preferences里配置一下tomcat 的版本与位置即可,这样eclipse就有些类似于Myeclipse了。 我建立了一个Tomcat project(装了上述插件才会有),在WEB-INF/src文件下添加类,我添加了两个类,一个MyService.java,一个WebServiceStarter.java。其中,MyService类用来写各种需要发布的服务,需要引进的包有: ??? import javax.jws.WebService; ? 还需要在这个类前声明: @WebService(targetNamespace = "http://jdk.study.hermit.org/client") 在类中,每个要发布的函数前面都要加上声明: @WebMethod 写好这个类后,写一个servlet类: import javax.servlet.ServletException; 参考多篇博文 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 5:44:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |