这些参数有什么作用?它们的用途是什么?
<service name="...">
<parameter name="wsdlPortType" value="..."/>
</service>另外,如果有人能解释一下参数wsdlServicePort、wsdlTargetNamespace和wsdlServiceElement,将不胜感激。
发布于 2013-02-08 06:00:45
Axis 1.4用户指南:
在Axis中部署服务时,用户可以使用标准web浏览器访问服务的网址,并在网址末尾附加"? WSDL“,他们将获得自动生成的描述服务的WSDL文档。
实验结果表明,Axis能够结合使用Java文件和编译的.wsdd .class文件来为给定服务生成相应的.wsdl。值得注意的是,例如,如果您有一个具有泛型返回类型的公共方法,则生成的.wsdl文件将不包含返回类型-它将包含"xsd:anyType“。我相信这是由于编译的.class文件上的类型擦除造成的。
无论如何,Axis .wsdd文件中的服务选项(我在问题中引用的参数,如wsdlPortType、wsdlServicePort和wsdlTargetNamespace)都与.wsdl规范相关。这可以从名称本身推断出来,因为它们都包含“wsdl”,但我想要解释这些参数的含义,但我找不到相关的Axis文档。以下是我的发现:
wsdlPortType (portType):基本上类似于Java接口。为每个方法名包含一个"operation“元素。每个"operation“都包含" input”和"output“元素,它们基本上是Java方法的输入参数和返回参数。
与portType关联的wsdlServicePort (wsdl:binding)。我把它看作是对如何为portType传输参数的描述。该规范是这样说的:
绑定描述组件提供了一个框架,用于指示portType描述组件的绑定详细信息。绑定详细信息应用于指示消息在发送到服务或从服务发送时必须如何格式化。它们还应用于指示用于发送消息的传输协议。给定的绑定描述组件不得指示一个以上的协议。
service::在其中有一个对wsdl端口绑定(portType的实现)的引用。
目标名称空间:和我想的差不多(与其他地方的名称空间一样)。它适用于所有wsdl :定义组件,所以基本上wsdl文件中的任何内容(wsdl:portType、wsdl:service等)。不过,您还可以在规范中找到其他一些规则。
发布于 2013-02-06 11:26:59
问题:当使用服务wsdl时,生成的wsdl可能与原始wsdl具有不同的targetNamespace、portType、服务元素名称或服务端口名称。此问题已由用户报告,属于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
https://stackoverflow.com/questions/13059018
复制相似问题