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

时间:2015-02-03 14:37:19

标签: java web-services wsdl axis2

我使用命令行创建了简单的2轴Web服务。

代码

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

的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>

我使用jar -cvf HelloAxis.aar *

创建了aar文件

然后将其部署在Axis2服务器中。

当我通过浏览器检查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>

为什么?它应该使用名称名称

但是当我使用eclipse插件生成aar文件时,它使用正确的名称。

1 个答案:

答案 0 :(得分:2)

要重命名服务的参数,请在每个输入变量前面使用@WebParam(name =&#34;&#34;)。

因此,只需替换方法签名

即可

(字符串名称)

使用:

(@ WebParam(name =&#34; name&#34;)String name)