更改JAVA Axis Web服务响应XML正文

时间:2012-08-07 15:26:20

标签: java eclipse web-services tomcat6 axis

我正在尝试创建一个返回vo列表的webservice。我能够返回VO列表。但我需要以特定的方式使用xml结构。

我不知道怎么用eclipse轴做。

我的配置

  • eclipse 3.4
  • java 1.6
  • 轴运行时间
  • tomcat 6

我的VO结构

LookVO

name:string

id:string

我在webservice类中有getGroupLookVO

的方法

我得到一个返回xml为

<getGroupLookVOResponse>
<getGroupLookVOReturn>
<name>one</name>
<id>1</id>
</getGroupLookVOReturn>
<getGroupLookVOReturn>
<name>two</name>
<id>2</id>
</getGroupLookVOReturn>
<getGroupLookVOReturn>
<name>three</name>
<id>3</id>
</getGroupLookVOReturn>
</getGroupLookVOResponse>

我需要的xml结构是

<getGroupLookVOResponse>
<getGroupLookVOReturn>
<LookVO>
<name>one</name>
<id>1</id>
</LookVO>
<LookVO>
<name>two</name>
<id>2</id>
</LookVO>
<LookVO>
<name>three</name>
<id>3</id>
</LookVO>
</getGroupLookVOReturn>
</getGroupLookVOResponse>

方法签名是

public LookVO[] getGroupLookVO()

我尝试编辑wsdl但是只要我重新生成客户端,wsdl就会被重写。我也不擅长WSDl。

有些人可以帮助我并指出正确的方向

1 个答案:

答案 0 :(得分:1)

如果我遇到了您的问题,您应该在之前重新生成Web服务,而不是客户端。

1)更改WEBSERVICE中的方法(不在客户端!)以获得您需要的行为

2)右键单击您的WS包,然后单击New - &gt;其他 - &gt;网络服务 - &gt;网络服务

3)按照向导添加您要发布的所有方法

4)在服务器上部署您的Web服务

然后

5)从新的wsdl

重新生成客户端

只是个人评论,但这是一个品味问题。在XML中,不应存在同一列表中元素顺序的概念,因为通过XML Schema的验证不提供这种可能性。您可以按照所需的顺序生成元素,但如果您是精心设计的XML的“纯粹主义者”,则不应该依赖于同一列表中的标记顺序。但是,我不想对此太烦人了:))

相关问题