前面我介绍了我使用webServices的一个过程,接下来更多了解一下。
WSDL:web service Description Language, 基于xml的web服务描述语言,就是将自己所要发布的服务描述出来,如功能,参数,路径等。这是一套标准的方法,外界可以根据它,清楚的指导它所提供的服务。
SOAP:simple object access protocol,简单对象访问协议,一种标准化得传输消息的xml消息格式,通过此协议来调用web服务。
UDDI:Universal Description,Discovery and Integration,通用描述,发现和集成服务,简单的来说就是一个服务的公共网址,大家把web服务在这里注册发布,给外界的人查找并使用。这个可有可无,直接把wsdl发给需要的人就可以了。
有时大家觉得wsdl文件难得写,不如直接生成。
1,编写你要发布的服务,如我前面提到的功能类。
2,生成wsdl文件
3,编写deploy.wsdd文件
4,发布服务,生成server-config文件
5,和前面一样
第一步:这里就把功能类作为了服务给发布出去了。前面是使用到的自动生成的服务框架代码。这里也不用担心你经常改变方法类容导致wsdl文件变化,wsdl只是提供一个服务接口,所以你也只要把方法名,参数定义好就可以了,这些不变,你的wsdl内容也不变
第二步:
java org.apache.axis.wsdl.Java2WSDL -o hello.wsdl -l http://localhost:8080/axis/services/HelloServicePortType -n HelloServicePortType com.localFunction.LocalFunction.HelloHelp
后面步骤就和前面一样了,只是这里要自己去些deploy.wsdd
我总觉的还是使用服务框架好,让功能类脱离出去,作为本地类,而不是发布服务。其实得到wsdl后,就可以按前面的步骤去做,这样就好了。
在webservice应用过程中,还有一个需要自己编写,那就是handler类了。handler作用如同filter一样。
Handler是接口,我们一般都是继承它的抽象类BasicHandler。
如:
public void invoke(MessageContext messagecontext) throws AxisFault {
System.out.println("call hanlder");
}
Handler要起作用,必须在server-config里面配置。这里又二种配法,意思就和全局变量和局部变量。
局部如:
<service name="HelloServiceHttpPort" provider="java:RPC" style="document" use="literal">
...
<requestFlow>
<handler name="a" type="java:com.webService.handler.TestHandler" />
</requestFlow>
</service>
局部就是把handler配置在你的service里面,其它service就不能引用你的handler,只能这个service用。
全局如:
</globalConfiguration>
<handler name="a" type="java:com.webService.handler.TestHandler" />
<service name="HelloServiceHttpPort" provider="java:RPC" style="document" use="literal">
...
<requestFlow>
<handler name="a" />
</requestFlow>
</service>
全局就是配置在service外面,注意也不是在globalConfiguration里面。
handler如filter一样,可以处理请求前,请求后,requestFlow代表的就是请求前,responseFlow自然是请求后,具体看你在server-config里面怎么配置。axis的handler中的involve方法并没管你是请求前,请求后,具体看你是怎么配置。如果我想在一个handler里面既有请求前和请求后怎么做了?那就直接实现java自带jax-rpc的hanlder,可以看到handleRequest,handleResponse二个方法。但是你使用的axis发布的,它只支持axis的handler,所以你直接配置在server-config里面就会报错,所以需要引用到axis的AXRPCHandler,它会处理好
<requestFlow>
<handler type="java:org.apache.axis.handlers.JAXRPCHandler">
<parameter name="className" value="com.webService.handler.HelloHandler" />
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.axis.handlers.JAXRPCHandler">
<parameter name="className" value="com.webService.handler.HelloHandler" />
</handler>
</responseFlow>
服务端通过server-config可以配置好handler,可是客户端没有配置文件,该怎么做?axis的Call中有call.setClientHandlers(reqHandler, respHandler);方法,可以很好的处理好客户端方面的handler操作。
说了这么多Handler有什么用了?参考别人的:
•对客户端进行认证、授权;
•把用户的访问写入系统日志;
•对请求的SOAP消息进行加密,解密;
•为Web Services对象做缓存。
这上面将的很详细http://www.ibm.com/developerworks/cn/webservices/ws-handler/index.html
上面附带了工程,还是使用的原来的工程。
分享到:
相关推荐
【标题】:“初学Web Services” 在Web服务的世界里,初学者可能会被各种术语和技术所困扰,但理解其核心概念是关键。Web服务是一种通过互联网交换数据的方式,它允许不同的应用程序之间进行通信。这种通信是基于...
在本项目"WebServices 天气预报"中,开发者提供了一个简单的天气预报应用,旨在帮助初学者理解WebServices的工作原理及其在C# WinForm环境中的实现。这个项目的核心是利用WebServices获取并显示天气信息。 首先,让...
【Web Services初学者教程】 Web Services是一种通过互联网进行通信的技术,允许不同的系统和应用程序之间进行交互,无论它们是运行在何种操作系统或使用哪种编程语言。这个概念为软件集成提供了强大的解决方案,...
本篇文章将深入探讨.NET环境下Web Services的使用方法,特别是对于初学者如何入门XML在Web Services中的应用。 首先,理解Web Services的基本概念至关重要。Web Services是通过HTTP协议传输数据的服务,它使用标准...
Web Services 教程旨在引导初学者理解这一技术的基本概念和应用。Web Services 是一种使应用程序能够跨越网络进行通信的技术,它能够将传统的应用程序转化为网络服务,从而实现不同系统间的数据交换和功能共享。这个...
本教程主要介绍了如何创建和使用Web Services,特别适合Web Services初学者。 首先,我们创建一个接口来定义Web Service的方法。在Java中,这通常涉及到使用`javax.jws.WebService`注解。例如,在`...
总之,这个`WebservicesDemo`示例代码涵盖了Web服务的基本创建、配置和使用流程,对于初学者来说是一个很好的起点。通过深入研究和实践,开发者可以掌握Web服务的核心技术和实现细节,为构建分布式、跨平台的应用...
RESTful Web Services是一种广泛应用于现代Web开发中的设计模式,它基于Representational State Transfer(表述性状态转移)原则,旨在创建高效、分布式的网络应用程序。本资料《RESTful Web Services中文高清版.pdf...
二、开发Web Services "Developing Web Services using Eclipse.doc"可能是关于如何在Eclipse集成开发环境中创建和部署Web Services的文档。Eclipse提供了多种插件,如Web Tools Platform (WTP),支持开发者轻松地...
- WSDL(Web Services Description Language)用于定义Web服务的接口,描述服务提供的操作、消息格式以及如何调用这些操作。 2. **RESTful API** - REST(Representational State Transfer)是一种流行的Web服务...
2. **WSDL(Web服务描述语言)**:WSDL文件是XML格式的,用于定义Web服务的接口,包括服务的位置、提供的操作以及如何调用这些操作。此包可能包含创建和理解WSDL文件的教程或示例。 3. **UDDI(统一描述、发现和...
Web Services是一种基于互联网的、平台独立的交互方式,允许不同系统之间进行数据交换和服务调用。这个概念在21世纪初期出现,...对于初学者来说,理解Web Services的基本概念、标准和应用是进入这一领域的关键步骤。
2. Web Services开发生命周期: Web Services的开发过程包括开发、部署、运行和管理四个阶段。在开发阶段,服务接口和实现被定义,并可能涉及现有应用程序的转换。部署阶段则涉及服务发布和执行环境的准备。运行阶段...
#### 二、Web Services 初学者教程 本教程旨在为初学者提供一个全面了解 Web Services 的入门指导,帮助他们快速掌握 Web Services 的基本概念、工作原理及其实现方式。 ##### 2.1 基础概念 - **SOAP (Simple ...
3.1 Amazon AWS(Amazon Web Services):提供了一系列的Web Services,如S3(存储服务)、EC2(计算服务)等,广泛应用于云计算领域。 3.2 Google Maps API:通过Web Services接口,开发者可以在自己的网站上嵌入...
接着,为项目命名并设置项目位置,确保选中"Include support for"下的"Webservices"选项。 创建项目后,我们将开始构建Web服务。在项目中,右键点击"src"目录,选择"New" -> "Other" -> "Web Service",然后选择...