我使用自下而上的方法在RSA 7.5和Websphere 7中使用JAX-WS创建了一个Web服务。当我在SOAP UI中打开WSDL时,参数部分显示如下:
<!--Optional-->
<arg0>
<empID>?</empId>
</arg0>
<!--Optional-->
<arg1>
<empName>?</empName>
</arg1>
<!--Optional-->
<arg2>
<empAddress>?</empAddress>
</arg2>
<!--Optional-->
<arg3>
<empCountry>?</empCountry>
</arg3>
服务方法将上述4个元素作为参数来返回员工详细信息。
1)我想用一些有效的名称重命名这个arg0,arg1等。
2)我想删除arg标记上方的<!--optional-->
。 (为了从元素名称中删除<!--optional-->
,我使用了@XMLElement(required = true))。但我不确定在这种情况下使用此注释的确切位置:(
请帮忙。
此致
答案 0 :(得分:12)
您将@XMLElement(required=true)
置于您的班级中从您的服务返回的变量之上。我刚刚在一个月前了解了这个选项。所以在你声明empName的地方上方放置标签和必需。
要重命名服务的参数,请使用每个输入变量前面的@WebParam(name="<name you want in soap>")
。
例如,如果您有一个名为get(String name)
的服务方法,它看起来像get(@WebParam(name = "name") String name)
你是对的,现在我再次阅读你的评论。我支持的服务在输入和输出中使用Object,这就是我将XMLElement标记放在这些对象的类中的原因。
您需要将标记放在声明传入或返回给服务的变量的类中。如果恰好在您的服务类中声明了那些没问题。重点是你将XMLElement标记置于变量声明之上,而不是将它放在getter或setter上。
本教程展示了一些使用示例。 JAXB tutorial