WebService<一>

一篇文章掌握WebService服务、工作原理、核心组件、主流框架 Web Service是一个SOA(面向服务架构)的应用程序,它是不依赖于语言,不依赖于平台,可以实现不同的语言(通过xml 描述)间的相互调用,通过Internet进行基于Http协议的网络应用间的互。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。** 简单可以理解成:WebService是一种跨编程语言和跨操作系统平台的远程调用技术**。 阅读详情
webService详解(一)
[sql]
什么是webService 
WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用.  
1:从WebService的工作模式上理解的话,它跟普通的Web程序(比如ASP、JSP等)并没有本质的区别,都是基于HTTP传输协议的程序。  
2:WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。 
webService的技术支持 
Web Service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web Service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有: 
XML和XSD 
  可扩展的标记语言XML 是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD 定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。  
  Web Service平台是用XSD来作为数据类型系统的。当你用某种语言如VB. NET或C# 来构造一个Web Service时,为了符合Web Service标准,所有你使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如 SOAP。 
 SOAP 
  SOAP即简单对象访问协议(Simple Object Access Protocal),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。  
  Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。 
 WSDL 
  Web Service描述语言WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。 
 UDDI 
  UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。 调用RPC与消息传递 
  Web Service本身其实是在实现应用程序间的通信。我们现在有两种应用程序通信的方法:RPC远程过程调用 和消息传递。使用RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。 
如何发布一个WebService? 
1、用Jdk1.6.0_21以后的版本发布一个WebService服务.并通过地址栏查看它的wsdl文档. 
2、通过wsimport生成客户端代码,调用并查看运行的结果.(学会如何调用是我们的重点). 
需要注意的是,jdk1.6._07以后jdk版本发布WebService时必须要完整的对代码进行注解,如果使用的是jdk1.6.0_21以后版本,因为它已经内含了ws2.1所以,可以只对类添加@WebService的注解. 
以下是两段不同的代码: 
在jdk1.6.0_13的版本上发布的ws: 
package com.itcast; 
import javax.jws.WebMethod; 
import javax.jws.WebService; 
import javax.jws.soap.SOAPBinding; 
import javax.jws.soap.SOAPBinding.Style; 
import javax.xml.ws.Endpoint; 
@WebService(targetNamespace=" http://loalhost:9999/helloworld") 
@SOAPBinding(style=Style.RPC)//只支持RPC的消息风格 
public class HelloWorld { 
//以下通过@WebMethod注解,对外公开方法 
@WebMethod 
public String sayHello(){ 
return "HelloWorld"; 
} 
public static void main(String[] args) { 
Endpoint.publish(" http://localhost:9999/helloworld",new HelloWorld()); 
} 
} 
2:以下是在jdk1.6.0_24上发布的WebService代码: 
package com.itcast; 
import javax.jws.WebService; 
import javax.xml.ws.Endpoint; 
@WebService//注意只有此一个注解,此注解也是必须的,默认的SOAP消息风格为:DOCUMENT 
public class HelloWorld { 
public String sayHello(){ 
return "HelloWorld"; 
} 
public static void main(String[] args) { 
Endpoint.publish(" http://localhost:9999/helloworld",new HelloWorld()); 
} 
} 
第一个WebService服务 
package com.itcast; 
import javax.jws.WebService; 
import javax.xml.ws.Endpoint; 
/** 
 * 第一个WebService服务应用 
 */ 
//通过注解,标明此类发布为一个WebService 
@WebService 
public class HelloWorld { 
public String sayHello(){ 
return "Hello World"; 
} 
//在main方法中,使用javax.xml.ws.Endpoint端点发布一个应用 
public static void main(String[] args) { 
Endpoint.publish(" http://127.0.0.1:9999/helloworld", 
 new HelloWorld()); 
} 
} 
代码说明:HelloWorld类的所有非静态公开方法将对外部暴露. 
Wsimport工具说明: 
   wsimport是jdk自带的,可以根据wsdl文档生成客户端调用代码的工具.当然,无论服务器端的WebService是用什么语言写的,都将在客户端生成Java代码.服务器端用什么写的并不重要. 
   wsimport.exe位于JAVA_HOME\bin目录下. 
   常用参数为: 
•   -d<目录>  - 将生成.class文件。默认参数。 
•   -s<目录> - 将生成.java文件。 
•   -p<生成的新包名> -将生成的类,放于指定的包下。 
(wsdlurl) -  http://server:port/service?wsdl,必须的参数 
使用: 
1:可以通过java –version检查你当前的版本号.如果版本太低可以安装高版本的jdk. 
或直接将别人已安装好的jdk目录拷贝到你的机器如D:\jdk1.6.0_24目录下. 
因为以前的环境变量已经设置成以前老版本的jdk目录,即JAVA_HOME和PATH两个环境变量. 
可以再重新设置一下环境变量为:JAVA_HOME=D:\jdk1.6.0_24,path=%JAVA_HOME%\bin, 
重新设置了环境变量后,要重新打开一个doc(命令行)窗口.才生效. 
如果不想修改原来已经配置好的环境变量,可以命令行窗口输入以下命令,使jdk1.6.0_24生效: 
set path = D:\jdk1.6.0_24\bin;%PATH%(回车即可) 
再通过java –version查看jdk的版本号是否已经发生变化. 
2:转到一个相对干净的目录下,我在d盘上新建立一个目录名为:ws,并转到此目录下. 
3:开启你的webService. 
4:输入以下命令: 
  wsimport –s .  http://127.0.0.1:9999/helloworld?wsdl 
   参数说明:-s是指编译出源代码文件,后面的.(点)指將代碼放到當前目錄下. 
   最后面的http….是指获取wsdl说明书的地址. 
5:此时,将生成.java文件和.class文件.(都包含原始包名).将代码Copy到你的项目中.(只拷贝java文件) 
6:在新的项目中,新一个类,(可位于任意包下),对上面生成的代码进行调用,见下一页ppt. 
7:wsimport其他参数说明,我们经常使用的参数为-d,-s,-p 
-d<目录>将会生成.class文件. 
示例:wsimport –d .  http://127.0.0.1:9999/helloworld?wsdl 
-s<目录>将会生成.java文件. 
示例:wsimport –s .  http://127.0.0.1:9999/helloworld?wsdl 
-p<包名>将生成的文件(.java或是.class修改成指定的包名) 
示例:wsimport -s . -p com.beijing.itcast  http://127.0.0.1:9999/helloworld?wsdl 
对于-p参数,注意包名的修改,它将所生成类,全部置于通过-p指定的包下.(演示) 
需要说明的是,当仅使用-p参数时,它也将同时使用-d即编译成.class文件. –d参数写或不写,它都在那里,不离不弃. 
RunMain.java的源代码如下: 
package com.leaf; 
import com.itcast.HelloWorld; 
import com.itcast.HelloWorldService; 
/** 
 * 通过调用生成的类,来调用远程代码 
 */ 
public class RunMain { 
public static void main(String[] args) { 
//从HelloWorldSerice的getHelloWorldPort方法中返回调用接口 
HelloWorld helloWorld =  
new HelloWorldService().getHelloWorldPort(); 
String str = helloWorld.sayHello(); //执行调用 
System.err.println(str);//返回HelloWorld字符串 
} 
} 
WebService与普通Web程序的区别 
1、  WebService只采用HTTP POST方式传输数据,不使用GET方式;  
1)  Tttp post的contentType为 
(1)application/x-www-form-urlencoded 
2)  WebService的contentType为 
(2) Text/xml soap1.1 
(3) application/soap+xml –soap1.2 
2、WebService从数据传输格式上作了限定。WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。 
 
WebService和web服务器的区别: 
我们可以把WebService看作是Web服务器上应用;反过来说,Web服务器是WebService运行时所必需的容器。这就是它们的区别和联系。 
 
WebService的特点: 
1、  WebService通过HTTP POST方式接受客户的请求 
2、  WebService与客户端之间一般使用SOAP协议传输XML数据. 
3、它本身就是为了跨平台或跨语言而设计的。  
webService入门到精通 webservice 阅读详情

相关推荐

IEC61850 通信协议测试验证实战指南:从理论到实践

本文提供了一份IEC61850通信协议从理论到实践的完整测试验证实战指南。针对MMS、GOOSE、SV三大核心协议,详细阐述了测试环境搭建、自动化脚本编写、性能与异常测试方法,并分享了常见避坑经验,旨在帮助工程师通过系统化的测试验证,确保电力自动化设备在现场的互联互通与稳定可靠运行。

neovim7hacker的博客 155

WebService全面详解

https://blog.youkuaiyun.com/ITITII/article/details/79609073

renxingzhadan的专栏 5万+

WinForm制作文件传输助手,Tcp局域网传输文件,传输速度受限于宽带和硬盘速度上限

文件传输助手为什么会出现,是因为项目上有些特殊的地方限制太多了,连插硬盘都需要关软件,联网又要开很不方便,网络限制一般软件只能局域网通信,还要开特定的端口等,你才能在电脑上通信,这样和机房的服务器远程的时候文件就不好拿过去,又不可能每次都去开机房的门。现在这个功能比较简单,只能单文件发送,但是其实比U盘硬盘方便,一般的六类网线传输压缩包在50M/s以上,U盘硬盘复制就不行了,特别如果是像我们学校这种网络结构,一个学校都在一个局域网,那真的方便!普通的局域网用特定IP和端口,通信也是很方便的。

m0_69233031的博客 1671

WebService技术详解 (一)

WebServiceWebService简介Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。 简单的说,WebService就是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,

春水上行的博客 46万+

debian mirrors 镜像源 riscv 64 赛昉 星光 starfive vf2 InRelease‘ doesn‘t support architecture ‘riscv64‘

debian mirrors 镜像 riscv 64 赛昉 星光2 starfive vf2 InRelease' doesn't support architecture 'riscv64'

qq_29758759的博客 1258

STM32F103C8T6板子使用说明

pcb版,把众多元器件集中到一个板子上面管理。

LYC_462857656的博客 2187

WebService

WebService 0. WebService简介 0.1 问题引入 问题一: Ø 它们公司服务器的数据库中都保存了天气预报数据吗? Ø 如果没有, 那数据都存在哪了呢? Ø 这些网站是如何得到这些数据的呢? 问题二: Ø 各个门户网站显示的股票行情信息数据又是怎么来的呢? 0.2 WebService简介 Webservice也叫XML Web Service,Web服务。可...

本人热爱计算机技术,欢迎爱好技术的朋友一起交流 1万+

避坑指南:时间序列互相关分析(CCF)常见的5个误用场景

本文详细解析了时间序列互相关分析(CCF)中常见的5个误用场景,包括忽视平稳性检验、混淆同期相关与因果关联、误读滞后阶数、忽略自相关干扰以及样本量不足等问题。通过实际案例和技术建议,帮助数据分析师避免这些陷阱,确保CCF分析的准确性和可靠性。

weixin_29064009的博客 428

【WebService】WebService注解总结

@WebService &nbsp; &nbsp; 1、serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service。缺省值为 Java 类的简单名称 + Service。(字符串) &nbsp; &nbsp; 2、endpointInterfac...

feng_zhiyu的博客 479

11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2457

qq邮箱发错误:The “From“ header is missing or invalid. Please follow RFC5322, RFC2047, RFC822 standard pro

如果还报错 (550, b’The mail may contain inappropriate words or content.'),可能是你message[‘From’]中的< senderxxx@qq.com >发送邮箱填错了,必须要和self.sender = ’ senderxxx@qq.com '一样。可能是之前qq邮箱发送协议存在漏洞,可隐藏发送者邮箱。现在换了新协议,导致与原来协议规则、编码出现了一些问题。"python自动发送""python自动发送"

云霄IT的博客 3670

WebService学习(二)

前言 相信通过上一篇介绍就会对WebService有一个大致的理解,今天主要搭建一个可以用在实际项目中的WebService框架。框架主要用到的是spring+mybatis,用MySQL数据库,数据库和表以及用到的数据自己建我就不说了,发布服务用的是jdk自带的jaxws(没有用cxf是因为依赖的包太多了)。 具体步骤 先看一下整个项目的工程目录 1.第一步新建一个动态web工程

qq_36637705的博客 401

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WebService详解

WebService 什么是Webservice? Web Service是自包含的、模块化的应用程序,它可以在Web中被描述、发布、查找以及调用。 webservice是基于网络的,分布式的模块化组件,他执行特定的任务,遵守具体的技术规范,这些规范使得webservice能与其他兼任的组件进行操作。 由企业发布的完成其特别商务需求的在线应用服务,其他公司或软件通过Internet来访问并使用这项应用服务 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2MFXviF

qq_43332594的博客 8498

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WebService总结

这里远程调用服务端只需要使用WebClient工具类即可完成,他调用请求方法后所返回的返回值为Response对象,该对象可以通过readEntity()方法来获取特定类型的返回值供我们使用。

m0_60027772的博客 2961

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WebService 理论详解、JWS(Java Web Service) 快速入门、 WSDL 文件结构详解、常用免费调用接口

目录 JWS 简介 第一个案例 ws 服务端 浏览器访问 客户端 调用测试 JWS 简介 Java Web Service 是 Java 语言对 WebService 服务的一种实现,用来开发和发布服务,为 Java 开发者提供便捷发布和调用WebService服务的功能。无需借助任何第三方库。 Java 1.6 开始推出JWS,在 javax.jws 包下,在线 JDK 文档...

蚩尤后裔-汪茂雄 1万+

WebService是什么

WebService是什么鬼?全华班 2018-03-23 14:56:35喜欢就点击上面蓝色字,更多精彩!导读 | 精选一、什么是Web Service1. 什么是Web Service呢?从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,Web Service是一...

君莫笑丶 6万+

Web服务(Web Service)

Web服务(Web Service)

听海边涛声 6429

webservice接口与HTTP接口学习笔记

一、webservice 的概念 Web是使应用程序可以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architect...

weixin_30889885的博客 1603

WebService详细讲解

webservice,soap,cxf

wjl187389的博客 1万+

webservice接口与HTTP接口学习笔记一、webservice 的概念

Web是使应用程序可以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。 简单的说WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖

m0_70618214的博客 6562

Web Service

其次也是更重要的是 .NET平台不仅延续了微软一贯的编程风格,而且还增加了许多支持Web 服务的关键性技术,使得.NET在操作的简单性和执行的稳定性,高效性上达到了一个非常好的结合。而EJB可以看做是分布式编程平台,通过容器和组件,简化了程序开发、调试和部署等它关注的是分布式组件开发,粒度小,而且EJB只属于J2EE规范的一部分。但是,通常认为Web Service是一种面向服务(SOA)的体系结构,它允许创建服务的抽象定义、提供服务的具体实现、发布和查找服务、选择服务实例以及互操作服务的使用。

skysukai的博客 2178

浅谈web api和Webservice

web api、Webservice

yuhu119的博客 1万+

WebService接口和http接口(API接口)的区别

WebService接口和http接口(API接口)的区别

weixin_42113716的博客 3790

WebService(一) 快速认知 什么是Web Service 快速入门 如何创建Webservice服务 极速开箱使用 客户端如何使用webservice接口

文章目录前言什么是Web ServiceXSDSOAPWSDLUDDI 前言 最近在使用webservice,有一些问题问同事,包括在使用遇到的问题也不是很清楚,所以就通过自己来写一篇博客,稍详细一点地去了解。 什么是Web Service Web service 是一个应用程序,它基于HTTP GET请求,暴露出可以通过Web调用的API。当然,Web service 还有更多的东西。Web services是建立可互操作的分布式应用程序的新平台。Web service平台是一套标准,它定义了应用程.

T_Antry 5712
上一篇: 常用的webService
下一篇: java.lang.NoSuchMethodError
hello人才
博客等级 码龄15年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值