Сложный объект в JAX-WS создан пустым - PullRequest
0 голосов
/ 08 июня 2009

Я тестирую JAX-WS для доступа к веб-серверу Oracle IRM. Я могу заставить его нормально работать с AXIS, так что это не проблема Oracle.

Что происходит, я получаю следующую ошибку при совершении вызова:

Expected xsd:anyType - unknown type provided

Если я смотрю на отправленный SOAP-пакет, я вижу, что тег владельца пуст в JAX-WS:

<ns1:browseAccounts>
    <owner/>
    <accountType>All</accountType>
</ns1:browseAccounts>

Тот же кусок под ОСью таков:

<owner xsi:type="ns1:LicenseServer" 
       xmlns="" 
       xmlns:ns1="http://www.sealedmedia.com/ls/server/schema">
    <serverKey>#############</serverKey>
</owner>

Очевидно, что тег владельца не создается должным образом, вот что я использую для его создания:

AccountServicesPort AA = ORI.getAccountServices();
LicenseServer LicSer = new LicenseServer();
LicSer.setServerKey("#######################");
List<Account> Acts = AA.browseAccounts(LicSer,AccountAccountType.ALL);

Есть ли какой-то другой процесс, который мне нужно пройти, чтобы правильно создать объект?

EDIT

Я подумал, что, возможно, поможет создание LicenseServer через ObjectFactory. К сожалению, это не так.

1 Ответ

0 голосов
/ 08 июня 2009

Несмотря на документацию Oracle IRM, в которой говорится, что BrowseAccounts принимает либо параметр LicenseServer, либо объект Context для параметра владельца, он фактически принимает LicenseServer_ref.

EDIT Кроме того, я использовал JAX-WS под JDK 1.6.0, который является более низкой версией, чем JDK 1.6.0_14. Новая версия поддерживает аннотацию XMLSeeAlso, которая позволила JAX-WS использовать подходящий класс для сериализации.

...