AXIS SOAP wsdl PortType

时间:2012-10-24 22:49:10

标签: soap wsdl axis

这些参数做了什么以及它们用于什么?

<service name="...">
    <parameter name="wsdlPortType" value="..."/>
</service>

此外,如果任何人都可以解释参数wsdlServicePort,wsdlTargetNamespace和wsdlServiceElement,那将不胜感激。

2 个答案:

答案 0 :(得分:3)

Axis 1.4用户指南:

  

在Axis中部署服务时,用户可以访问您的   服务的URL使用标准Web浏览器并附加“?WSDL”   在URL的末尾,它们将获得自动生成的WSDL   描述您服务的文件。

实验结果表明,Axis能够使用.wsdd部署描述符文件和已编译的Java .class文件的组合来为给定服务生成相应的.wsdl。有趣的是,例如,如果你有一个带有Generics返回类型的公共方法,例如Map,你生成的.wsdl文件将不包含返回类型 - 它将包含“xsd:anyType”。我相信这是由于编译的.class文件中的类型擦除。

无论如何,Axis .wsdd文件中的服务选项(我在问题中引用的参数,如wsdlPortType,wsdlServicePort和wsdlTargetNamespace)与.wsdl规范相关。这可以从名称本身推断,因为它们都包含'wsdl',但我想要解释这些参数的含义,我无法找到相关的Axis文档。以下是我的发现:

wsdlPortType(portType):基本上就像一个Java接口。每个方法名称包含一个“operation”元素。每个“操作”都包含“input”和“output”元素,这些元素基本上是您输入的参数和Java方法的返回参数。

wsdlServicePort(wsdl:binding)与portType相关联。我认为它是如何传输portType参数的描述。规范有这样说:

  

绑定描述组件提供了一个指示框架   portType描述组件的绑定详细信息。绑定细节   应该用来表明消息必须在格式化时如何格式化   发送到服务或从服务发送。他们也应该用来表示   用于发送消息的传输协议。给定的   绑定描述组件不得指示多个   协议

wsdl:service :在wsdl端口绑定(portType的实现)中有一个引用。

目标命名空间:几乎就是我的想法(与其他任何地方的命名空间相同)。它适用于所有wsdl:definitions组件,所以wsdl文件中的任何内容基本上都是(wsdl:portType,wsdl:service等)。您可以在规范中找到其他一些规则。

答案 1 :(得分:0)

问题:     使用Service?wsdl时,生成的wsdl可能没有     相同的targetNamespace,portType,服务元素名称或     服务端口名称为原始wsdl。这个问题有     用户报告并且是TCK问题。

解决方案:     将四个可选参数添加到deploy.wsdd和     由JavaProvider查询(wsdlTargetNamespace,wsdlServiceElement,     wsdlServicePort和wsdlPortType)。

Here is an example deploy.wsdd with the new parameters.

<!-- Services from AddressBookService WSDL service -->

<service name="AddressBook" provider="java:RPC">
    <parameter name="wsdlTargetNamespace" value="urn:AddressFetcher2"/>
    <parameter name="wsdlServiceElement" value="AddressBookService"/>
    <parameter name="wsdlServicePort" value="AddressBook"/>
    <parameter name="className" value="samples.addr.AddressBookSOAPBindingSkeleton"/>
    <parameter name="wsdlPortType" value="AddressBook"/>
    <parameter name="allowedMethods" value="*"/>
    <parameter name="scope" value="Session"/>

来源:http://mail-archives.apache.org/mod_mbox/axis-java-dev/200206.mbox/%3C20020621143740.41268.qmail@icarus.apache.org%3E