Веб-сервис Axis с типом = "xsd: base64Binary" - PullRequest
1 голос
/ 29 мая 2009

Итак, у меня есть wsdl, который определяет часть сообщения, подобную следующей

<wsdl:message name="processEnvelopeResponse">
    <wsdl:part name="processEnvelopeReturn" type="xsd:base64Binary"/>
</wsdl:message>

Это сопоставляется с xsd, который затем импортирует другие xsds и т. Д.

У меня есть следующие вопросы:

  1. Как я могу сгенерировать объекты части сообщения из xsd

Проигнорируйте это, я нашел ответ, вы можете делать это до тех пор, пока вы импортируйте xsd в файл wsdl. Лучше объясню позже

  1. Как я могу сгенерировать объекты на стороне клиента таким образом, чтобы я мог напрямую заполнить объекты сообщения и передать его по проводам
  2. Как мне вызвать веб-сервис, преобразовав сгенерированные объекты в base64Binary (предполагается, что описанное выше невозможно)

1 Ответ

1 голос
/ 24 июля 2009

Поэтому, отвечая на мой собственный вопрос, я смог сгенерировать артефакты для вызова веб-службы из списка xsd, но не смог использовать их при вызове веб-службы.

Так что мне пришлось сгенерировать XML вручную, повезло, что это был маленький вызов.

String input="XML";
byte[] s = port.processEnvelope(input.getBytes());

И так как ответ пришел в xsd: base64Binary, мне пришлось преобразовать входящую строку в объекты xml для обработки ответа.

String xmloutput = new String(s,"UTF-8");

Затем я поставил xmloutput через jdom, я получил свои данные.

В общем, глупый способ реализовать веб-сервис.

...