webservice如何使用,webservice入门教程

webservice如何使用,webservice入门教程,WebService教程详解(一)

顾名思义,Web是基于Web的Web服务。它使用Web(HTTP)方法来接收和响应来自外部系统的某些请求。接下来,本文将介绍WebService教程(1)的详细讲解。和对webservice教程感兴趣的朋友一起学习吧。

Web服务可以将应用程序转换成网络应用程序。

通过使用Web服务,您的应用程序可以向全世界发布信息或提供某种功能。

其他应用程序可以使用Web服务。

通过Web服务,您的会计部门的Win 2k服务器可以与IT供应商的UNIX服务器连接。

基本的Web服务平台是XML HTTP。

Web服务使用XML编码和解码数据,使用SOAP传输数据。

什么是webService

顾名思义,Web是基于Web的Web服务。它使用Web(HTTP)来接收和响应来自外部系统的某种请求。从而实现远程调用。

1.从WebService的工作模式来看,它与普通的Web程序(如ASP、JSP等)并没有本质的区别。),而且都是基于HTTP传输协议的程序。

2.2:WebService使用的数据都是基于XML格式的。目前标准的WebService主要采用数据格式的SOAP协议。SOAP协议实际上是基于XML编码规范的文本协议。

webService的技术支持

服务平台需要一套协议来创建分布式应用。任何平台都有其数据表示方法和类型系统。为了实现互操作性,Web服务平台必须提供一套标准类型的系统,用于沟通不同平台、编程语言和组件模型的不同类型的系统。目前,这些协议是:

XML和XSD

可扩展标记语言(XML)是Web服务平台中表示数据的基本格式。除了易于构建和分析之外,XML的主要优点是它独立于平台和供应商。XML是由万维网联盟(W3C)创建的。W3C制定的XML SchemaXSD定义了一组标准数据类型,并给出了扩展这组数据类型的语言。

web平台使用XSD作为数据类型系统。当你用VB这样的语言构造一个Web服务时。NET或C#中,您使用的所有数据类型都必须转换为XSD类型,以符合Web服务标准。如果你想让它在不同平台不同软件的不同组织之间传递,你需要用什么东西把它包装起来。这种东西就是一种协议,比如SOAP。

SOAP

也就是SOAP(简单对象访问协议),这是一种用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope定义了描述信息内容以及如何处理信息内容的框架,将程序对象编码成XML对象的规则,以及实现远程过程调用(RPC)的约定。SOAP可以在任何其他传输协议上运行。例如,您可以使用SMTP(互联网电子邮件协议)来传递SOAP消息,这非常诱人。传输层之间的报头是不同的,但是XML有效载荷保持不变。

Web Service希望不同的系统可以通过“软件对软件的对话”来相互调用,打破软件应用、网站和各种设备之间的不兼容状态,达到“基于Web的无缝集成”的目的。

WSDL

Web服务描述语言WSDL是一种基于XML的语言,它以机器可读的方式提供正式的描述文档,用于描述Web服务、它们的功能、参数和返回值。因为它是基于XML的,WSDL既是机器可读的,也是人类可读的。

UDDI

UDDI的目的是建立电子商务的标准;UDDI是一套基于Web的分布式实现标准,用于Web服务和信息注册中心。它还包含一组访问协议的实现标准,使企业能够注册自己的Web服务,以便其他企业能够发现它们。调用RPC和消息传递

Web服务本身实际上是应用程序之间的通信。现在我们有两种应用程序通信的方法:RPC远程过程调用和消息传递。使用RPC时,客户端的概念是调用服务器上的远程过程,通常通过实例化远程对象并调用其方法和属性。RPC系统试图实现一种位置透明:服务器公开远程对象的接口,而客户端就像本地使用的这些对象的接口一样,从而隐藏底层信息,客户端根本不需要知道对象在哪个机器上。

如何发布一个WebService?

1.用Jdk1.6.0_21发布WebService服务,通过地址栏查看其wsdl文档。

2.通过wsimport生成客户端代码,调用并查看运行结果。(学习如何打电话是我们的重点)。

需要注意的是,jdk1.6._07之后的jdk版本在发布WebService时必须完整标注代码。如果使用的是jdk1.6.0_21之后的JDK版本,因为已经包含了ws2.1,所以只能在类中添加@WebService注释。

以下是两段不同的代码:

在jdk1.6.0_13的版本上发布的ws:

包com . it cast;

导入javax . jws . web method;

导入javax . jws . web service;

导入javax . jws . soap . soap binding;

导入javax . jws . soap . soap binding . style;

导入javax . XML . ws . endpoint;

@ web service(target namespace= http://loal host:9999/hello world )

@ soap binding(style=style . rpc)//仅支持RPC的消息样式

公共类HelloWorld {

//该方法将通过下面的@WebMethod注释向公众公开。

@方法

公共字符串sayHello(){

返回“hello world”;

}

公共静态void main(String[] args) {

endpoint . publish( http://localhost:9999/hello world ,new hello world());

}

}

2:以下是jdk1.6.0_24上发布的WebService代码:

包com . it cast;

导入javax . jws . web service;

导入javax . XML . ws . endpoint;

@WebService//注意只有这个标注,也是必须的。默认的SOAP消息样式是:DOCUMENT。

公共类HelloWorld {

公共字符串sayHello(){

返回“hello world”;

}

公共静态void main(String[] args) {

endpoint . publish( http://localhost:9999/hello world ,new hello world());

}

}

第一个WebService服务服务

包com . it cast;

导入javax . jws . web service;

导入javax . XML . ws . endpoint;

/**

*第一个WebService服务应用

*/

//标注这种发布是WebService。

@WebService

公共类HelloWorld {

公共字符串sayHello(){

返回“Hello World”;

}

//在main方法中,使用javax.xml.ws.Endpoint发布应用程序。

公共静态void main(String[] args) {

endpoint . publish( http://127 . 0 . 0 . 1:9999/hello world ,

new hello world());

}

}

代码:HelloWorld类的所有非静态公共方法都将对外公开。

Wsimport工具说明:

WSImport是jdk提供的工具,可以根据wsdl文档生成客户端调用代码。当然,无论服务器端的WebService用什么语言编写,客户端都会生成Java代码。服务器端用什么写并不重要。

Wsimport.exe位于JAVA_HOMEbin目录中。

常用参数为:

将生成一个. class文件。默认参数。

-s目录-将生成一个. java文件。

-p New package name generated-将生成的类放在指定的包下。

(wsdl URL)-http://服务器:端口/服务?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: JDK 1 . 6 . 0 _ 24 bin;%PATH%(只需按enter键)

然后通过java -version检查jdk的版本号是否有变化。

2:去一个相对干净的目录,我在D盘新建了一个名为:ws的目录,去了这个目录。

3:打开你的web服务。

4:输入以下命令:

ws imports . http://127 . 0 . 0 . 1:9999/hello world?wsdl

参数说明:-s是指编译源代码文件,后面跟。(点)表示将代码放在当前目录中。

最后一个http….指获取wsdl规范的地址。

5:至此,java文件和。将生成类文件。(两者都包含原始包名)。将代码复制到项目中。(仅复制java文件)

6:在新项目中,一个新类,(可以位于任何包下),调用上面生成的代码,见下页ppt。

7:7:ws import的其他参数表示我们经常使用的参数是-d,-s,-p。

d目录将生成一个. class文件。

例如:ws importd . http://127 . 0 . 0 . 1:9999/hello world?wsdl

将生成-s目录。java文件。

例如:ws imports . http://127 . 0 . 0 . 1:9999/hello world?wsdl

-p包名生成的文件(。java或者。类被更改为指定的包名)

例如:ws import-s .-pcom . Beijing . it cast 3358127 . 0 . 0 . 1:9999/hello world?wsdl

对于-p参数,注意包名的修改,这会将所有生成的类放在-p指定的包下(演示)

需要注意的是,当只使用-p参数时,也会同时使用-d参数编译成. class文件。不管是不是写出来的,都会一直在。

RunMain.java的源代码如下:

包com.leaf

导入com . it cast . hello world;

导入com . itcast . hello world service;

/**

*通过调用生成的类来调用远程代码。

*/

公共类RunMain {

公共静态void main(String[] args) {

//从HelloWorldSerice的getHelloWorldPort方法返回调用接口

HelloWorld helloWorld=

新HelloWorldService()。getHelloWorldPort();

string str=hello world . say hello();//执行调用

system . err . println(str);//返回HelloWorld字符串

}

}

WebService与普通Web程序的区别

1、 WebService只采用HTTP POST方式传输数据,不使用GET方式;

tttp帖子的内容类型为

(1)应用程序/x-www-form-urlencoded

web服务的内容类型是

(2)文本/xml soap1.1

(3)应用程序/soap XMLsoap 1.2

2、WebService从数据传输格式上作了限定。

WebService使用的数据都是基于XML格式的。目前标准的WebService主要采用数据格式的SOAP协议。SOAP协议实际上是基于XML编码规范的文本协议。

WebService和web服务器的区别:

我们可以把WebService看作是Web服务器上的一个应用;另一方面,Web服务器是WebService运行时的必要容器。这就是它们之间的区别和联系。

WebService的特点:

1.web服务通过HTTP POST接受客户的请求。

2.通常,SOAP协议用于在WebService和客户端之间传输XML数据。

3.它是为跨平台或跨语言而设计的。

webservice如何使用,webservice入门教程