Как создать клиент веб-сервиса на .jsp странице?

Я создал WSDL для своего веб-сервиса. Я хотел бы знать, как назвать его от jsp страницы из моего другого веб-приложения.

Я хотел бы назвать веб-сервис от jsp.. например, рассмотрение у меня есть очень простой веб-сервис, который дисплей поддержал бы текст, введенный на моей index.jsp странице после нажатия, отправляет, как я использовал бы wsdl URL для вызова веб-сервиса, принимающего текстовое значение при нажатии отправляют.

/vikram

10
задан skaffman 18 February 2012 в 10:22
поделиться

3 ответа

Вы говорите о вызове его из браузера или вызове из JSP для отображения чего-либо в HTML, отправленном в браузер? Это совершенно разные проблемы.

Если вы говорите о вызове его из браузера, то лучше всего рассматривать полезную нагрузку SOAP как большую часть шаблона XML. Затем введите несколько фрагментов информации, необходимых для распознавания запроса SOAP, а затем используйте XMLHttpRequest для отправки XML на сервер. Наконец, вы извлекаете результат из полезной нагрузки возврата SOAP.

Если вы хотите просто вызвать веб-службу из JSP, лучше всего создать класс-оболочку служебной программы, которая обертывает всю сантехнику для вызова веб-службы, а затем вызывает эту оболочку из JSP, используя стандартные Техника Java.

Правка - ответ на вопрос

Итак, в основном у вас есть страница index.jsp с текстовым полем. Вы нажимаете «Отправить», вы хотите, чтобы текст этой отправки был отправлен в веб-службу, а результат отобразился обратно в браузере.

Просто, запретив использование XHLHttpRequest, вы хотите создать клиент веб-службы (с помощью JAX-WS, Axis или любого другого набора инструментов веб-службы Java).

Затем у вас должен быть сервлет или JSP, который берет запрос POST из формы, извлекает текст из запроса, а затем вызывает веб-службу. Наконец, он вернет результат клиенту (используя JSP или что-то еще).

Вы не можете POST HTML напрямую в веб-службу, протоколы другие.

Итак

          text           text
        | --> |         | ----> |            
        |     | Servlet |result | Web Service
        |     |         | <---- |
Browser |     |         |
        |     |         | forward |
        |     |         | ------> | JSP  
        |                         |
        |    rendered result      |
        | <---------------------- |
2
ответ дан 4 December 2019 в 02:50
поделиться

Как данные достигают страницы сервлета Java?

JSON, XML?

if JSON , я рекомендую вам использовать jQuery , метод .get () просто фантастический! Именно так я использую на своих страницах ASP ...

0
ответ дан 4 December 2019 в 02:50
поделиться

Я действительно не рекомендую кодировать какую-либо логику в JSP, включая вызов веб-службы, это не очень хорошая практика. JSP - это технология просмотра, и ее следует использовать для презентации, а не для бизнес-логики. Вместо этого вы должны отправить форму сервлету, получить отправленные параметры, вызвать веб-службу и затем распечатать результаты в представлении JSP. Но закроем скобки.

Поскольку вы упомянули WebLogic и Workshop в комментарии, я предполагаю, что вы их используете :) WebLogic поддерживает JAX-WS, поэтому я предлагаю использовать его для вашего клиента.

По сути, вам нужно сначала сгенерировать «клиентские артефакты» (т. Е. Классы, которые вы будете использовать для вызова веб-службы). Один из способов сделать это - использовать задачу Ant clientgen . См. Вызов веб-службы из автономного клиента: основные шаги для получения подробной информации (должно быть возможно сгенерировать классы из Workshop, но я не могу сказать вам, как это сделать, я не использую его) .

После создания клиентских артефактов вызов веб-службы становится простым делом. Код будет похож на следующий:

ComplexService test = new ComplexService(), 
ComplexPortType port = test.getComplexPortTypePort();

BasicStruct in = new BasicStruct();

in.setIntValue(999);
in.setStringValue("Hello Struct");

BasicStruct result = port.echoComplexType(in);
System.out.println("echoComplexType called. Result: " + result.getIntValue() + ", " + result.getStringValue());
5
ответ дан 4 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: