как избавиться от классов ArrayOfString из клиентского кода jax-ws - PullRequest
5 голосов
/ 24 июня 2011

При генерации клиентского кода из WSDL с использованием wsimport я получаю много классов ArrayOf ***.Я хочу убедиться, что я получаю String [] вместо ArrayOfString.

Какие внешние настройки необходимо выполнить для достижения этой цели?

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

На данный момент я сделал обходной путь, изменив объект ArrayOfXXX в XXX [], используя отражение в служебном методе.

0 голосов
/ 22 января 2014

Я не уверен, что это то, о чем вы спрашиваете, но если вы видите это в своем ответе xml, вы, вероятно, неправильно используете методы класса ObjectFactory, сгенерированные JAX-WS.

Например, две строки кода ниже

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>

Надеюсь, это кому-нибудь поможет.

...