[英]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.