【webservice】Apache Axis 配置文件参考指南

Aapche Axis的Web Service Deployment Descriptor(WSDD)文件参考文档。

本部分介绍的所有的WSDD元素的名称空间都是"http://xml.apache.org/axis/wsdd/"。



告诉Axis Engine这是一个部署描述文件。一个部署描述文件可以表示一个完整的engine配置或者将要部署到一个活动active的一部分组件。



用于控制engine范围的配置。可以包含以下子元素:

·    : 用来设置Axis的各种属性,参考Global Axis Configuration,可以配置任意数量的参数元素.

·    : 设置一个SOAP actor/role URI,engine可以对它进行识别。这允许指向这个role的SOAP headers成功的被engine处理。任意数量.

·    : 全局的请求Handlers。在调用实际的服务之前调用.

·    : 全局响应Handlers,在调用完实际的服务后,还没有返回到客户端之前调用.





可以放置任意多个 or 在中,但是可能只有一个.





This is used to configure handlers in response flow. You may put any number of  or  elements (see below) inside the , but there may only be one .





部署文档的根元素,用于指示Axis这是个卸载描述文件.





位于顶层元素 or , or inside a , , or . 用于定义Handler,并定义handler的类型。"Type" 可以是已经定义的Handler或者是"java:class.name"形式的QName。可选的"name"属性允许将这个Handler的定义在其他部署描述部分中引用。可以包含任意数量的元素.





部署/卸载一个Axis服务。这是最复杂的一个WSDD标签。

Options可能通过以下元素来指定: , 一些常用的包括:

·   className : 后台实现的类

·   allowedMethods : 每个provider可以决定那些方法允许web services访问

Axis支持的providers有如下几种:

Java RPC Provider (provider="java:RPC") 默认情况下所有的public方法都可以web service方式提供

Java MsgProvder (provider="java:MSG")

为了更进一步的限制上面的方法,allowedMethods选项用于指定一个以空格分隔的方法名,只有这些方法可以通过web service访问。也可以将这个值指定为”*”表示所有的方法都可以访问。同时operation元素用来更进一步的定义被提供的方法,但是它不能决定方法的可见性.

注意,发布任何web service都有安全含义.

·   allowedRoles : 都好分离的允许访问服务的角色列表。注意,这些是安全角色,和SOAP角色相反。安全角色控制访问,SOAP角色控制哪些SOAPheaders会被处理。

·   extraClasses : 指定一个空格或者都好分离的类名称列表,这些类的名字应该被包含在WSDL文档的类型定义部分。当服务接口引用一个基类的时候,或者希望WSDL文件包含其他类的XML Schema类型定义的时候,这个参数很有用。

如果希望为服务定义handler,可以在元素中添加和子元素。他们的语义和元素中的定义时一样的。也就是说,它们可以包含 and  元素,根据指定的顺序被调用.

通过服务的Handlers来控制角色,可以在服务声明中指定任意数量的元素。

例如:

http://testservice/http://testservice/MyRole/

   

可以通过使用标签指定关于服务的特殊操作的元数据。这可以将方法的java参数名和特定的XML名进行映射,为参数指定特定的模式,并将特定的XML名字映射到特定的操作。例如

...


定义一个链。当chain被调用的时候,按顺序调用其中的handler。这样就可以构建一个常用功能的模块,chain元素的子元素可以是handler或者chain。handler的定义形式可以是如下两种方式:



或者



定义了一个服务器端的传输。当一个输入请求到达的时候,服务器传输被调用。服务器传输可能定义 and/or  元素来指定handlers/chains,在请求和响应被处理的时候被调用,这个功能和service元素中的功能一样。典型的传输请求响应handler实现了关于传输的功能。例如转换协议headers等等.



对于任何种类的传输,经常是指HTTP传输,当特定的查询字符串传递到servlet的时候用户可能允许Axis servlets执行任意的动作,以plug-in的方式。 (参考Axis Servlet Query String Plug-ins).当查询字符串handler的类名被指导后,用户可以通过在中添加合适的来启用它(插件)。


在上面的例子中,AxisServlet会处理的查询字符串是?name,它调用的类是class.name。元素的name属性必须加上前缀qs来表示这个元素定义了一个查询字符串handler。value属性值相实现了org.apache.axis.transport.http.QSHandler 接口的类。默认情况下,Axis提供了三个Axis servlet查询字符串handlers (?list, ?method, and ?wsdl). 查看Axis服务器配置文件来了解它们的定义。如果不希望使用默认的handlers,就设置"useDefaultQueryStrings" 为false。默认会被设置成true.





定义了一个客户端的传输,当发送SOAP消息的时候来调用。"pivot"属性指定一个Handler来作为实际的传输sender,例如HTTPSender。请求和响应流和服务器端的设置相同.





每个typeMapping将一个XML qualified名字和一个Java类进行映射,使用一个序列器和反序列器。





讲话的类型映射,使用一个预定义的序列器/反序列器来编码/解码JavaBeans。





在,  或者操作的中使用。.是文档说明,生成wsdl的元素.

Example:
This operation echoes a stringa string

全局的Axis配置参数

服务默认的是通过server-config.wsdd文件中的值来进行配置的。但是熟练的Axis用户可以写自己的配置handler,这样就可以将配置数据保存在LDAP服务器,数据库或者远程的web service等等。查看源代码来了解如何实现。也可以在web.xml文件中使自动的获取配置信息。但是Axis不推荐这样使用,因为最好将配置信息放在一个位置。

在server-config文件中,有一个全局配置部分,支持以名/值对的形式作为嵌套元素使用。




单独的Service(服务)配置

Operation level documentation here



由于Service的配置和Operation的配置很容易理解,各个参数也都使用了self-explanation的表示,所以这里就不再赘述了。



同时Axis还定义日志配置以及一些预定义的Handler,详细内容,参考Axis的参考文档。

你可能感兴趣的:(webservice)