2010-07-23 3 views
4

У меня есть файл wsdl и подробный документ обо всех элементах в каждом запросе и ответе от поставщика веб-сервиса. Моя задача состоит в том, чтобы составить около 40 запросов и проанализировать соответствующие ответы.Compose Soap Request в Java

Более конкретно, наша платформа отправляет запросы и получает ответы от службы, поэтому для меня, как разработчика приложений, мне нужно только составлять запросы на мыло и передавать их как String на платформу. Я также получаю ответ как String с платформы.

Я попробовал StringBuilder, но он выглядит довольно примитивно. Это должен быть лучший способ сделать это.

Можно ли разместить все запросы в XML-документе и как-то генерировать запросы от него?

Или еще лучше, можно ли генерировать запросы из файла wsdl?

Спасибо,

Сара

+0

Не знаете, как StringBuilder выглядит более примитивно, чем String – Woot4Moo

+0

Привет Woot4Moo (nice name btw), по примитиву Я имею в виду, когда я создаю запросы, я использую StringBuilder. Например, StringBuilder.append («»). Существует много типизации, поэтому я назвал его примитивным – sarahTheButterFly

ответ

2

Посмотрите на wsdl2java утилит (существует несколько версий, одна в комплекте с Axis2, другой от IBM, и т.д.). Они могут генерировать клиентские заглушки из вашего WSDL и должны сэкономить вам значительную часть работы.

EDIT: Только что понял, что для этого может потребоваться дополнительная работа, так как вы говорите, что ваша платформа отправляет запросы. Сгенерированный код должен пытаться передать строки службе, если это то, что указано вашим WSDL, возможно, вы можете изменить код для передачи строк на вашу платформу?

JAX-WS's wsimport

Client stubs w/ XFire

Axis2's wsdl2java

IBM's wsdl2java

+0

Привет, Segphault, спасибо за ответ. Я попробовал wsdl2java от Axis для тестирования веб-сервиса в другом проекте. Созданные заглушки были довольно грязными (не могу найти лучшего слова, извините), и я должен передать запрос как String на нашу платформу, так что я не думаю, что заглушки помогут? Может быть, я использовал wsdl2java неправильно? – sarahTheButterFly

+0

ответ на ваш EDIT. Да, это может быть способ сделать это. Посмотрите. – sarahTheButterFly

+0

Да, сгенерированный код по умолчанию будет беспорядочным - есть несколько вариантов, которые вы можете передать, чтобы немного подтянуть его, но я не помню, что именно (я думаю, что это связано с выбором привязки данных) , Честно говоря, мне трудно рекомендовать что-либо из проектов Axis с чистой совестью, потому что это такая куча дерьма. Вы также можете взглянуть на создание заглушки с помощью XFire (добавлена ​​ссылка на исходный пост). –