`
Sev7en_jun
  • 浏览: 1227520 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
84184fc0-d0b6-3f7f-a3f0-4202acb3caf5
Apache CXF使用s...
浏览量:111471
社区版块
存档分类
最新评论

Apache Axis配置文件WSDD详解

 
阅读更多

FROM: http://apps.hi.baidu.com/share/detail/49260024

 

 

 

 

 

Aapche AxisWeb Service Deployment Descriptor(WSDD)文件参考文档。

本部分介绍的所有的WSDD元素的名称空间都是"http://xml.apache.org/axis/wsdd/"
<deployment>
告诉Axis Engine这是一个部署描述文件。一个部署描述文件可以表示一个完整的engine配置或者将要部署到一个活动active的一部分组件。
<GlobalConfiguration>
用于控制engine范围的配置。可以包含以下子元素:
·   <parameter> : 用来设置Axis的各种属性,参考Global Axis Configuration,可以配置任意数量的参数元素.
·   <role> : 设置一个SOAP actor/role URIengine可以对它进行识别。这允许指向这个roleSOAP headers成功的被engine处理。任意数量.
·   <requestFlow> : 全局的请求Handlers。在调用实际的服务之前调用.
·   <responseFlow> : 全局响应Handlers,在调用完实际的服务后,还没有返回到客户端之前调用.
<requestFlow [name="name"] [type="type"] >
可以放置任意多个<handler> or <chain>在<requestFlow>,但是可能只有一个<requestFlow>.
<responseFlow [name="name"] [type="type"] >
This is used to configure handlers in response flow. You may put any number of <handler> or <chain> elements (see below) inside the <responseFlow>, but there may only be one <responseFlow>.
<undeployment>
部署文档的根元素,用于指示Axis这是个卸载描述文件.
<handler [name="name"] type="type">
位于顶层元素<deployment> or <undeployment>, or inside a <chain>, <requestFlow>, or <responseFlow>. 用于定义Handler,并定义handler的类型。"Type" 可以是已经定义的Handler或者是"java:class.name"形式的QName。可选的"name"属性允许将这个Handler的定义在其他部署描述部分中引用。可以包含任意数量的<parameter name="name" value="value">元素.
<service name="name" provider="provider" >
部署/卸载一个Axis服务。这是最复杂的一个WSDD标签。
Options可能通过以下元素来指定: <parameter name="name" value="value"/>, 一些常用的包括:
·   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,可以在<service>元素中添加<requestFlow>和<responseFlow>子元素。他们的语义和<chain>元素中的定义时一样的。也就是说,它们可以包含<handler> and <chain> 元素,根据指定的顺序被调用.
通过服务的Handlers来控制角色,可以在服务声明中指定任意数量的<role>元素。
例如:
<service name="test">
<parameter name="className" value="test.Implementation"/>
<parameter name="allowedMethods" value="*"/>
<namespace>http://testservice/</namespace>
<role>http://testservice/MyRole</role>
<requestFlow> <!-- Run these before processing the request -->
    <handler type="java:MyHandlerClass"/>\
    <handler type="somethingIDefinedPreviously"/>
</requestFlow>
</service>
可以通过使用<operation>标签指定关于服务的特殊操作的元数据。这可以将方法的java参数名和特定的XML名进行映射,为参数指定特定的模式,并将特定的XML名字映射到特定的操作。例如
<operation name="method">
</operation>
<chain name="name">
<subelement/>...
</chain>
定义一个链。当chain被调用的时候,按顺序调用其中的handler。这样就可以构建一个常用功能的模块,chain元素的子元素可以是handler或者chainhandler的定义形式可以是如下两种方式:
<chain name="myChain">
<handler type="java:org.apache.axis.handlers.LogHandler"/></chain>
或者
<handler name="logger" type="java:org.apache.axis.handlers.LogHandler"/>
<chain name="myChain"/>
   <handler type="logger"/></chain>
<transport name="name">
定义了一个服务器端的传输。当一个输入请求到达的时候,服务器传输被调用。服务器传输可能定义<requestFlow> and/or <responseFlow> 元素来指定handlers/chains,在请求和响应被处理的时候被调用,这个功能和service元素中的功能一样。典型的传输请求响应handler实现了关于传输的功能。例如转换协议headers等等.
对于任何种类的传输,经常是指HTTP传输,当特定的查询字符串传递到servlet的时候用户可能允许Axis servlets执行任意的动作,以plug-in的方式。 (参考Axis Servlet Query String Plug-ins).当查询字符串handler的类名被指导后,用户可以通过在<transport>中添加合适的<parameter>来启用它(插件)
<transport name="http">
   <parameter name="useDefaultQueryStrings" value="false" />
   <parameter name="qs.name" value="class.name" /></transport>
在上面的例子中,AxisServlet会处理的查询字符串是?name,它调用的类是class.name。<parameter>元素的name属性必须加上前缀qs来表示这个元素定义了一个查询字符串handlervalue属性值相实现了org.apache.axis.transport.http.QSHandler 接口的类。默认情况下,Axis提供了三个Axis servlet查询字符串handlers (?list, ?method, and ?wsdl). 查看Axis服务器配置文件来了解它们的定义。如果不希望使用默认的handlers,就设置"useDefaultQueryStrings" false。默认会被设置成true.
<transport name="name" pivot="handler type" >
定义了一个客户端的传输,当发送SOAP消息的时候来调用。"pivot"属性指定一个Handler来作为实际的传输sender,例如HTTPSender。请求和响应流和服务器端的设置相同.
<typeMapping qname="ns:localName" classname="classname" serializer="classname" deserializer="classname"/>
每个typeMapping将一个XML qualified名字和一个Java类进行映射,使用一个序列器和反序列器。
<beanMapping qname="ns:localName" classname="classname">
讲话的类型映射,使用一个预定义的序列器/反序列器来编码/解码JavaBeans
<documentation>
在<service>, <operation> 或者操作的<parameter>中使用。.是文档说明,生成wsdl<wsdl:document>元素.
Example:
<operation name="echoString" >
   <documentation>This operation echoes a string</documentation>   <parameter name="param">
      <documentation>a string</documentation>
   </parameter>
</operation>
全局的Axis配置参数
服务默认的是通过server-config.wsdd文件中的值来进行配置的。但是熟练的Axis用户可以写自己的配置handler,这样就可以将配置数据保存在LDAP服务器,数据库或者远程的web service等等。查看源代码来了解如何实现。也可以在web.xml文件中使自动的获取配置信息。但是Axis不推荐这样使用,因为最好将配置信息放在一个位置。
server-config文件中,有一个全局配置部分,支持以名/值对的形式作为嵌套元素使用。
<globalConfiguration>
    <parameter name="adminPassword" value="admin"/>
    <parameter name="axis.servicesPath" value="/services/"/>
    <parameter name="attachments.Directory" value="c:\temp\attachments"/>
    <parameter name="sendMultiRefs" value="true"/>
    <parameter name="sendXsiTypes" value="true"/>
    <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
    <parameter name="sendXMLDeclaration" value="true"/>
    <parameter name="enable2DArrayEncoding" value="true"/>
    <parameter name="dotNetSoapEncFix" value="false"/>
</globalConfiguration>
单独的Service(服务)配置
<service name="MyServiceName"
                   provider="java:RPC"
                   style="rpc|document|wrapped"
                   use="encoded|literal"
                   streaming="off|on"
                   attachment="MIME|DIME|NONE">
<parameter name="className" value="org.apache.mystuff.MyService"/>
<parameter name="allowedMethods" value="method1 method2 method3"/>
<parameter name="wsdlTargetNamespace" value="http://mystuff.apache.org/MyService"/>
<parameter name="wsdlServiceElement" value="MyService"/>
<parameter name="wsdlServicePort" value="MyServicePort"/>
<parameter name="wsdlPortType" value="MyPort"/>
<parameter name="wsdlSoapActionMode" value="NONE|DEFAULT|OPERATION"/>
<parameter name="SingleSOAPVersion" value="1.1|1.2/>
<documentation>Service level info</documentation>
<endpointURL>http://example.com:5050/my/custom/url/to/service</endpointURL>
<wsdlFile>/path/to/wsdl/file</wsdlFile>
<namespace>http://my.namespace.com/myservice</namespace>
<handlerInfoChain>handlerChainName</handlerInfoChain>
<operation ... />
<typeMapping ... />
<beanMapping ... />
</service>
单独的Operation(操作)配置
<operation name="GetQuote"
           qname="operNS:GetQuote"
           returnQName="GetQuoteResult"
           returnType="xsd:float"
           soapAction=""
           returnHeader="true|false">
    <documentation>Operation level documentation here</documentation>
    <parameter name="ticker" type="tns:string"/>
    <fault name="InvalidTickerFaultMessage"
           qname="tickerSymbol"
           class="test.wsdl.faults.InvalidTickerFaultMessage"
           type="xsd:string"/>
</operation>
由于Service的配置和Operation的配置很容易理解,各个参数也都使用了self-explanation的表示,所以这里就不再赘述了。
同时Axis还定义日志配置以及一些预定义的Handler,详细内容,参考Axis的参考文档。
分享到:
评论
1 楼 孤风清酒 2016-12-13  
谢谢博主资料收集。

相关推荐

    WebServiceWSDD上传服务器部署server-config.wsdd文件

    WSDD(Web Service Deployment Descriptor)是Apache Axis框架中的一个配置文件,用于定义Web服务的部署和运行时行为。这篇博客“WebService WSDD上传服务器部署 server-config.wsdd 文件”可能是关于如何在服务器上...

    server-config.wsdd

    其中,`server-config.wsdd`文件就是Apache Axis(一个开源的Web服务框架)中的核心配置文件,专门用于管理Web服务的部署和服务端的配置。本文将详尽解析`server-config.wsdd`的内涵及其重要性,旨在帮助读者深入...

    Springboot集成axis1.4的demo

    4. **wsdd文件详解**:`service.wsdd`文件中的元素主要包括`deployment`、`globalConfiguration`、`service`和`handler`等。例如: ```xml &lt;deployment xmlns="http://xml.apache.org/axis/wsdd/"&gt; ...

    AXIS配置文档例子

    6. **配置文件详解**: - `axis-server.xml`:这是AXIS服务器的主要配置文件,定义了服务器的行为,如端口设置、错误处理等。 - `axis.properties`:存储了AXIS的一些属性配置,例如日志级别、编码格式等。 - `...

    Axis使用Stub方式开发Webservice只要看这个

    接下来,我们需要配置一个部署文件`deploy.wsdd`,用于定义服务的部署细节。这里我们定义了一个名为`sayhello`的服务,并指定了服务类为`server.SayHello`。 ```xml &lt;deployment xmlns="http://xml.apache.org/axis/...

    Axis发布调用服务

    **三、server-config.wsdd详解** server-config.wsdd文件中的`&lt;deployment&gt;`元素是整个部署描述的根节点,包含多个服务(service)的定义。每个`&lt;service&gt;`元素代表一个Web服务,其内部可以有多个`&lt;parameter&gt;`元素...

    用axis1.4发布自己的wsdl服务详解

    &lt;deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"&gt; &lt;!-- Services from ImsServiceWSDLservice --&gt; &lt;!-- /(:RPC,Docment,Wrapped,Message)...

    axis_讲解 java

    该命令用于将 `deploy.wsdd` 文件中的服务部署到 Axis 服务器上。 #### 3.2 调用 Web 服务 部署完成后,可以使用 Axis 提供的客户端工具来调用服务。文中给出了一个示例命令: ```bash java samples.userguide....

    WebService之axis的复杂对象传输方案

    #### 二、部署文件配置详解 在配置文件`deploy.wsdd`中,我们可以看到以下关键配置: ```xml &lt;deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java=...

    axis搭建webService的例子

    其中,`HelloWorld.java`是服务端的Java类,`HelloWorldService.wsdd`是服务部署描述文件,`web.xml`是配置Axis的Servlet容器文件。 五、运行与调试 1. **编译Java类**:使用JDK的`javac`命令编译Java源代码。 2. *...

    axis1.4发布webservice接口步骤(java).docx

    ### Axis 1.4 发布WebService接口步骤详解 #### 一、概述 本文档旨在详细介绍如何使用Axis 1.4框架在Java环境下发布WebService接口。Axis是一个由Apache组织开发的开源项目,它提供了用于实现基于SOAP协议的Web...

    java-webservice-axis2简单开发实例.doc

    【Java Axis2 WebService开发详解】 在Java世界中,开发Web服务经常会选择使用Apache Axis2框架,它是一个高效且灵活的Web服务引擎,允许开发者轻松地创建和部署Web服务。本篇文章将详细介绍如何使用Java和Axis2来...

    axis自定义数组对象

    ### Axis自定义数组对象知识点详解 #### 一、概述 在进行Web服务开发时,我们经常需要处理复杂的类型,如自定义的数组或对象。Apache Axis框架为Java开发者提供了强大的支持,使得创建、部署和调用Web服务变得简单...

    axis1.4+ibatis2.3开发webservice服务[图解]

    尽管Axis 2提供了一些改进和新特性,但在实际项目部署过程中发现,Axis 2在处理发布的服务aar包中的iBatis `sqlmapconfig.xml`配置文件时存在问题,导致配置文件无法被正确识别和加载。因此,在这种情况下,建议选择...

    Axis 开发指南

    WSDD(Web Service Deployment Descriptor)是Axis中的核心配置文件,用于定义WebService的细节。高级特性包括: - **Handler**:处理程序可以用来拦截SOAP消息,在消息到达业务逻辑之前或之后执行特定操作,如安全...

    Axis在tomcat下的部署以及和应用的结合.doc

    ### Axis在Tomcat下的部署及应用结合详解 #### 一、概述 Axis 是 Apache 组织提供的一款开源软件,主要用于创建和部署 Web Services。本文档将详细介绍如何在 Tomcat 应用服务器环境下部署 Axis 1.4,并实现与具体...

    Axis WebService 实例源码

    部署文件(如`ServeTest.wsdd`)描述了服务的行为和配置,需要放置在Tomcat的`WEB-INF/services`目录下。 4. **调用Web服务**:一旦服务部署完成,就可以通过HTTP请求来调用。客户端可以通过生成的代理类与服务进行...

    axis webservice开发过程.doc

    【Axis Webservice 开发过程详解】 在Web服务领域,Axis是一个流行且强大的工具,用于创建和部署基于Java的Web服务。本文将详细讲解如何使用Axis进行Web服务开发,包括概念理解、环境准备、接口与实现类创建、配置...

    axis web service例子

    Axis是Apache软件基金会开发的一个开源Java库,主要用于创建和使用Web服务。本文将深入讲解基于Java的Axis Web服务,以及如何通过一个实际案例来理解其工作原理。 1. Axis简介: Axis是Java平台上流行的Web服务...

    axis搭建的webservice简单操作步骤

    ### 使用Axis搭建WebService框架的操作步骤详解 随着网络技术的发展,Web Service作为一种标准的服务提供方式,在企业间的信息交换、系统集成等方面发挥着重要作用。本文将详细介绍使用Apache Axis搭建WebService...

Global site tag (gtag.js) - Google Analytics