简体   繁体   English

Axis2生成的WSDL文件参数名称与实际名称不同

[英]Axis2 generated WSDL file parameter name differ from actual name

I have created simple axis 2 web service using the command line. 我已经使用命令行创建了简单的第2轴Web服务。

Code

public class HelloAxis{
    public String sayHello(String name){
        return "Hello " + name;
    }
}

services.xml services.xml

<service name="HelloAxis"><description> Hello Axis2 web service </description>
    <messageReceivers>
       <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>                  
       <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> 
    </messageReceivers>
    <parameter name="ServiceClass">HelloAxis</parameter>
</service>

I created the aar file using jar -cvf HelloAxis.aar * 我使用jar -cvf HelloAxis.aar *创建了aar文件jar -cvf HelloAxis.aar *

Then deploy it in the Axis2 server. 然后将其部署在Axis2服务器中。

When I check the wsdl through the browser, parameter name is args0 . 通过浏览器检查wsdl时,参数名称为args0

<xs:element name="sayHello">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Why is that? 这是为什么? It should be use name as name 应该使用名称作为名称

But when I generate the aar file using eclipse plugin it use the correct name. 但是,当我使用eclipse插件生成aar文件时,它使用正确的名称。

To rename the parameters of your service use the @WebParam(name="") in front of each input variable to the service. 要重命名服务的参数,请在服务的每个输入变量前面使用@WebParam(name =“”)。

Therefore just replace your method signature 因此,只需替换您的方法签名

(String name) (字符串名称)

with: 与:

(@WebParam(name = "name") String name) (@WebParam(name =“ name”)字符串名称)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM