Использование веб-службы с сервлетами Java - PullRequest
6 голосов
/ 07 мая 2011

Я пытаюсь разработать очень простое веб-приложение на Java с использованием JSP и сервлетов.

1) На странице есть текстовое поле и кнопка отправки,
2) Пользователь вводит свое имя, скажем Джон, в текстовое поле и нажимает кнопку,
3) Строка пересылается моему сервлету,
4) В методе doPost моего сервлета я получаю доступ к опубликованной строковой переменной
5) В веб-службе, которую я буду использовать, есть метод sayHello, который принимает аргумент и возвращает "Hello " объединенный с аргументом,
6) Итак, я вызываю метод sayHello веб-службы, получаю возвращаемую переменную и пересылаю это в JSP, который в основном записывает Hello John,

Я знаком с JSP и сервлетом, но я не знаю, как использовать уже существующий веб-сервис или как использовать функциональность, которая уже реализована в этом веб-сервисе..

Все, что у меня есть, - это имя метода, sayHello, URL-адрес веб-службы, http://example.com/hello_service и ссылка на файл wsdl, который содержит XML-подобный код, который я не делаюзнаете, как использовать.

Мой вопрос: как мне использовать этот веб-сервис или как вызвать метод внутри сервлета?

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 07 мая 2011

Я использую Eclipse для разработчиков JavaEE. Как автоматически создать клиента?

Удалите файл WSDL в свой динамический веб-проект (или создайте для него новый проект), щелкните его правой кнопкой мыши, выберите Веб-службы> Создать клиента , завершите работу мастера с настройками по умолчанию. Будет создан новый пакет, в который будет помещен сгенерированный код клиента WSDL. Один из этих классов имеет ServiceLocator в имени класса.

В сервлете вам нужно создать экземпляр класса ServiceLocator, получить от него службу SOAP и затем вызвать для него нужные методы. Дальнейшие детали не могут быть предоставлены, поскольку WSDL неизвестен.

Смотри также:

0 голосов
/ 07 мая 2011

вы должны создать клиентские заглушки, которые будут частью вашего проекта кода (в котором есть сервлет).WSDL определяет, как генерировать эти заглушки.Вы можете вызывать методы в заглушке из вашего сервлета.Вы можете использовать различные инструменты для создания этих заглушек, Axis2 является одним из наиболее широко используемых.

Здесь - документация Apache Axis2, в которой рассказывается, как это сделать.

У этой заглушки будут методы, определенные в wsdl.Вы будете в основном вызывать эти методы, и внутренняя реализация заглушки (автоматически сгенерированная из wsdl по axis2) создаст запрос SOAP на основе аргументов, передаваемых методу.Затем он отправит этот запрос по HTTP или HTTPS на URL веб-службы.Вам будет казаться, что вы вызываете код, который находится на вашем компьютере, но внутренне он вызывает удаленный веб-сервис.

0 голосов
/ 07 мая 2011

Вы можете использовать "wsimport" из jax-ws для генерации клиентского jar для веб-сервиса. Затем, включив jar-клиент в ваш classpath, вы можете вызвать веб-сервис так же, как и любой другой обычный метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...