5

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

需要做哪些外部定制来实现这一点?

4

2 回答 2

2

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

于 2011-07-01T06:07:11.253 回答
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>

希望这可以帮助某人。

于 2014-01-21T22:44:06.710 回答