如何从jax-ws客户端代码中删除ArrayOfString类

时间:2011-06-24 03:25:57

标签: jax-ws wsimport

使用wsimport从WSDL生成客户端代码时,我得到了很多ArrayOf ***类。 我想确保我得到String []而不是ArrayOfString。

为实现这一目标需要做哪些外部定制?

2 个答案:

答案 0 :(得分:2)

到目前为止,我已经通过在实用程序方法中使用反射将ArrayOfXXX对象修改为XXX []来完成解决方法。

答案 1 :(得分:0)

我不确定这是否是你要问的,但如果你在xml响应中看到这些,你可能会误用JAX-WS生成的ObjectFactory类中的方法。

例如,

下面的两行代码
factory.createArrayOfNameListItem(factory.createArrayOfNameListItem());

factory.createMyDataItemNames(arrayOfNameListItem);

生成相同类型的对象:

JAXBElement<ArrayOfNameListItem> objects

然而

factory.createArrayOfNameListItem(factory.createArrayOfNameListItem());

序列化/呈现为:

<ArrayOfNameListItem>
<Names>
  <NameListItem>
    <FirstName>
      Homer
    </FirstName>
    <LastName>
      Simpson
    </LastName>
  </NameListItem>
</Names>
</ArrayOfNameListItem>

factory.createMyDataItemNames(arrayOfNameListItem);

序列化/呈现为:

<Names>
  <NameListItem>
    <FirstName>
      Homer
    </FirstName>
    <LastName>
      Simpson
    </LastName>
  </NameListItem>
</Names>

希望这有助于某人。