<deployment>:告诉Axis Engine这是一个部署描述文件。一个部署描述文件可以表示一个完整的engine配置或者将要部署到一个活动active的一部分组件。
<GlobalConfiguration>:用于控制engine范围的配置。可以包含以下子元素:
· <parameter> : 用来设置Axis的各种属性,参考Global Axis Configuration,可以配置任意数量的参数元素.
· <role> : 设置一个SOAP actor/role URI,engine可以对它进行识别。这允许指向这个role的SOAP headers成功的被engine处理。任意数量.
· <requestFlow> : 全局的请求Handlers。在调用实际的服务之前调用.
· <responseFlow> : 全局响应Handlers,在调用完实际的服务后,还没有返回到客户端之前调用.
<requestFlow [name="name"] [type="type"] >可以放置任意多个<handler> or <chain>在<requestFlow>中,但是可能只有一个<requestFlow>.
<responseFlow [name="name"] [type="type"] >可以放置任意多个<handler> or <chain>在< responseFlow >中,但是可能只有一个< 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或者chain。handler的定义形式可以是如下两种方式:
<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来表示这个元素定义了一个查询字符串handler。value属性值相实现了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>
|
分享到:
相关推荐
axis2根据wsdl生成java客户端代码 D:\Software\axis2-1.6.2\bin>wsdl2java.bat -uri http://10.33.30.216:9099/facs/services/ResourceSynchroWebService?wsdl -o E:\wsdloutput -p com.util wsdl2java.bat -uri ...
在Axis2中,可以通过编写Java接口并使用Apt(Annotation Processing Tool)或者Wsdl2Java工具来生成WSDL文件。WSDL文件是一个XML文档,详细描述了Web服务的接口、消息格式、操作和地址,使得客户端能够理解如何与...
在使用`Axis2`之前,需要先下载并解压`axis2-1.7.4`压缩包。解压后,我们可以看到包含`bin`、`lib`、`repository`等目录的文件结构。`bin`目录下的`axis2 Ant任务`和命令行工具可用于生成Java代码。 2. **生成Java...
一个wsdl文件,用axis2解析,一个wsdl文件,用axis2解析,
本篇文章将详细探讨如何使用`Axis1`将`WSDL`(Web服务描述语言)文件转换为Java源代码,以便于实现服务的客户端或者服务端接口。 `WSDL`文件是XML格式的,它定义了Web服务的接口,包括服务的位置、提供的操作以及如何...
根据WSDL文件中的定义,SOAPUI会自动生成相应的测试步骤。用户可以根据需要调整这些测试步骤,例如设置请求参数、验证响应等。 **4. 执行测试** 配置完毕后,可以通过单击“Run”按钮来执行测试,查看测试结果。 ...
webService通过axis编辑wsdl文件生成代码
在 Axis2 中,我们可以使用WSDL2Java工具从一个给定的WSDL文件自动生成Java客户端代码。这个过程包括以下步骤: 1. **下载与安装**: 首先,你需要下载Axis2 1.6.2的发行版,这里提供的是"axis2-1.6.2"的压缩包。...
在这个教程中,我们将学习如何使用Apache Axis2将一个简单的类转换为对外提供服务的Web服务,并生成WSDL文件,以及如何调用这些服务。 首先,我们需要了解提供的类`Person`,它包含`name`、`age`和`gender`三个属性...
在Axis2中,我们可以使用`wsdl2java`命令行工具,将WSDL文件转换为Java客户端和服务端的代码。这样,我们只需要关注业务逻辑,而不必手动编写繁琐的SOAP消息处理代码。 以下是使用Axis2生成代码的步骤: 1. 安装并...
当我们有一个WSDL文件时,可以通过Axis工具将其转换为Java客户端代码,这样我们就可以在Java应用程序中轻松地调用这些Web服务。 接下来,我们来看看如何在MyEclipse中配置和使用Axis: 1. 安装Axis插件:MyEclipse...
为了在Java环境中与这些Web服务交互,我们需要将WSDL文件转换为Java类,这就是`wsdl2java`工具的作用。 `wsdl2java`是Apache Axis项目的一部分,它是一个强大的工具,可以自动生成Java客户端和服务端代码,这些代码...
AXIS2 1.7.3 idea wsdl代码生成插件正是为了解决在IDEA中处理AXIS2项目时,自动生成与WSDL文件对应的Java源代码的问题。 这个插件的核心功能是将WSDL文件转换成可执行的Java客户端和服务端代码,从而简化了Web服务...
本教程将详细介绍如何使用Axis2快速发布自己的WSDL(Web Service Definition Language)服务。 首先,我们需要理解WSDL是什么。WSDL是一种XML格式的规范,用于定义Web服务接口,包括服务的位置、提供的操作以及如何...
2. **加载WSDL**:使用`WSDLReader`类读取WSDL文件,例如`WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();`,然后调用`readWSDL()`方法加载文件。 3. **获取定义(Definition)**:`Definition`...
使用Axis WSDL2Java工具,我们可以将此WSDL文件转换为相应的Java代码,这样就可以在Java环境中创建一个可以调用这个Web服务的客户端,或者实现服务端的功能。 总结来说,Axis WSDL2Java是Apache Axis的一部分,它...
当你已经有了服务端代码,例如Java类,你可以使用Axis1.4来生成相应的WSDL文件。首先,确保你的项目已经包含了Axis1.4的库,即axis1.4.jar。在Eclipse中,右键点击项目,选择"属性" -> "Java构建路径" -> "库",...
### 使用axis.jar包生成WSDL文件的详细步骤与原理 #### 一、概述 随着互联网技术的发展,Web Service作为一种标准的、跨平台的服务提供方式,得到了广泛的应用。它允许不同平台上的应用程序通过HTTP协议进行通信,...
在 Axis2 中,我们可以使用`org.apache.axis.wsdl.WSDL2Java`工具,根据WSDL文件自动生成与服务交互所需的Java客户端代码,这极大地简化了开发者的工作,无需手动编写复杂的SOAP消息构造代码。 首先,你需要确保...
总之,`axis-1.4.jar`、`commons-discovery-0.2.jar`、`commons-logging-1.0.4.jar`、`jaxws-api-2.0.jar`和`wsdl4j-1.6.1.jar`这五个JAR文件构成了解析和处理WSDL文件的基础,它们共同为使用Axis开发Web服务提供了...