Я создал WSDL для своего веб-сервиса. Я хотел бы знать, как назвать его от jsp страницы из моего другого веб-приложения.
Я хотел бы назвать веб-сервис от jsp.. например, рассмотрение у меня есть очень простой веб-сервис, который дисплей поддержал бы текст, введенный на моей index.jsp странице после нажатия, отправляет, как я использовал бы wsdl URL для вызова веб-сервиса, принимающего текстовое значение при нажатии отправляют.
/vikram
Вы говорите о вызове его из браузера или вызове из 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 |
| <---------------------- |
Как данные достигают страницы сервлета Java?
JSON, XML?
if JSON , я рекомендую вам использовать jQuery , метод .get () просто фантастический! Именно так я использую на своих страницах ASP ...
Я действительно не рекомендую кодировать какую-либо логику в 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());