使用axis开发webservice的心得 axis2开发webservice

1.webservice的定义
webservice可以看成是面向服务的体系架构的一种实现方式.在这个架构中,有服务提供者,服务使用者,服务注册中心.WSDL,SOAP,以及UDDI是基本的Web服务规范.WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描

述,然后通过SOAP来调用服务。
1)服务提供者
一个可通过网络寻址的实体,它接受和执行来自使用者的请求。
它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。
2)服务使用者
一个应用程序、一个软件模块或需要一个服务的另一个服务。
它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。
服务使用者根据接口契约来执行服务。
3)服务注册中心
服务发现的支持者;它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。在实际应用中,通常用axis来搭建服务注册中心.所有的服务都通过service-config.wsdd进行描述.server-config.wsdd一般是放在项目的WEB-INF下

2.axis的开发环境搭建
项目的开发环境:java1.5,tomcat6,Axis1.4
在项目的动态连接库中加入Axis所需的包:axis.jar;axis-ant.jar;commons-discovery-0.2.jar;commons-logging-1.0.4.jar;jaxrpc.jar;log4j-1.2.8.jar;saaj.jar;wsdl4j-1.5.1.jar;activation.jar;mail.jar.
web.xml加入相关定义
<display-name>Apache-Axis</display-name>
<servlet>
<display-name>Apache-AxisServlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<display-name>Axis AdminServlet</display-name>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

3.用axis发布webservice的方法
用axis发布webservice的方法有3种:
1)即时发布

编译好类文件,把扩展名改成jws,然后放到axis的目录下,因为axis目录下默认有web.xml定义,用org.apache.axis.transport.http.AxisServlet来解析*.jws文件。
2)手动发布

也就是写部署文件deploy.wsdd,这个文件里已经写了入口地址,运行javaorg.apache.axis.client.AdminClient即可完成部署.

访问的时候一般是http://127.0.0.1:8080/axis/services/入口地址.
3)自动部署

要编写server-config.wsdd,配置web.xml,发布和普通的web程序发布一样,入口地址也已经写到server-config.wsdd里了,查看的时候就是http://127.0.0.1:8080/你的发布webapp/services/入口地址

Java类映射到WSDL的规则,请参考JAX-RPC规范
服务发布以后,就可以在IE浏览器里看到它的WSDL,一般是服务的URL后面加一个“?wsdl”

4.AXIS的几种服务类型
AXIS有四种service styles,分别是:RPC, Document, Wrapped,和Message。最常用的就是RPC和Message。
1)RPC服务
这个服务是axis默认的服务。我们在前面的例子中写的就是rpc服务。<service ...provider="java:RPC"> 。rpc服务遵从soaprpc规范和编码规则,意味着来自rpc服务的xml将类似上面例子中的“echoString”--每个rpc调用被模块化为一个外部元素,匹配操作名称,并包含了很多内部元素,每一个都是操作的一个参数。axis将把这些xml转化为java对象,配送给你得服务,并将序列化来自服务的java对象为xml.因为rpc服务默认采用soapsection 5规则,对象将会通过"multi-ref" 序列化来编码。
2)Document / Wrapped 服务
这2个服务很类似,都不需要用soap编码来处理数据。他就是一个普通的xml格式。无论哪种情况,axis还是对他们做了xml到java得绑定,所以你最终处理的还是java对象,而不是xml结构的字符串。
下面的例子来说明他们2个之间的区别。
<soap:Envelope xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<soap:Body>
<myNS:PurchaseOrder xmlns:myNS="http://commerce.com/PO">
使用axis开发webservice的心得 axis2开发webservice
<item>SK001</item>
<quantity>1</quantity>
<description>SushiKnife</description>
</myNS:PurchaseOrder>
</soap:Body>
</soap:Envelope>
相关的PurchaseOrder类型定义如下:
<schema targetNamespace="http://commerce.com/PO">
<complexTypename="POType">
<sequence>
<element name="item"type="xsd:string"/>
<element name="quantity"type="xsd:int"/>
<element name="description"type="xsd:string"/>
</sequence>
</complexType>
<element name="PurchaseOrder"type="POType"/>
</schema>
对于一个document服务来说,他将对应到这样的方法:
public void method(PurchaseOrder po)
而对于wrapped服务来说,他对应于下面的方法:


public void purchaseOrder(String item, int quantity, Stringdescription)
3)Message 服务
当你需要处理纯xml而不是java对象时,你将会用到这种服务。
message服务的方法有4中签名
public Element [] method(Element [] bodies);
public SOAPBodyElement [] method (SOAPBodyElement [] bodies);
public Document method(Document body);
public void method(SOAPEnvelope req, SOAPEnvelope resp);

5.axis生成webservice客户端的调用框架
用Axis的wsdl2java生成Webservice的客户端的调用框架,wsdl2java生成的客户端的调用框架是stub方式的。它包括endpoint接口、实现该接

口的stub,serviceLocator.通过服务端提供WSDL信息来生成客户端的调用框架.
有了web service客户端的调用框架,客户端stub存根方式调用web服务

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/95192.html

更多阅读

转载 有关硕士论文查重的总结:使用paperpass和知网的心得!

原文地址:有关硕士论文查重的总结:使用paperpass和知网的心得!作者:蚂蚁酷9月30日上交了论文查重,今天晚些时候年级通知我们,结果出来了,没有公布相似的比例,但通过了。这算是过了论文的第一关了,略微松了一口气,回想之前改论文的痛苦过程,觉得

使用axis开发webservice的心得 axis2开发webservice

1.webservice的定义webservice可以看成是面向服务的体系架构的一种实现方式.在这个架构中,有服务提供者,服务使用者,服务注册中心.WSDL,SOAP,以及UDDI是基本的Web服务规范.WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用

声明:《使用axis开发webservice的心得 axis2开发webservice》为网友败絮分享!如侵犯到您的合法权益请联系我们删除