Вопрос

Я разрабатываю Java web services (JAX-WS) для вставки данных в базу данных mysql и извлечения их.Этот веб-сервис имеет два метода, т.е.Извлекайте из базы данных и вставляйте в нее TODB.Службы, кажется, работают нормально, когда я тестирую их с помощью netbeans IDE.

Address: /CalculatorWSService
WSDL:    /CalculatorWSService?wsdl

но когда я пытаюсь получить к нему доступ с помощью объекта XMLHttpRequest AJAX, указав URL http://localhost:8080/CalculatorApp/CalculatorWSService.Он не может получить к нему доступ.Я разработал веб-сервисы на C #, и было так легко получить к ним доступ по URL-адресу, но веб-сервисы java, похоже, этому не следуют.

Мой вопрос заключается в следующем

Какой URL-адрес использовать для доступа к операциям веб-службы в AJAX?(Нужно ли мне использовать '?wsdl' в URL-адресе?Существует ли библиотека javascript ajax для легкого доступа к веб-сервисам JAX-WS?Веб-сервисы Apache Axis - лучший выбор по сравнению с JAX-WS?Пожалуйста, помоги мне, спасибо, Джей

Это было полезно?

Решение

У меня была такая же проблема, как и у вас, не удалось вызвать веб-службу Jax-ws из Javascript, но я нашел способ сделать это.

Используемый URL-адрес может быть вашим же (EndpointAddress). "http://localhost:8080/CalculatorApp/CalculatorWSService"

но когда вы создаете объект XMLHttpRequest из javascript, вам необходимо:

* Используйте метод POST, чтобы открыть URL-адрес, я пробовал с помощью GET, но у меня это не сработало.
* Установите заголовок запроса SOAPAction таким же, как в вашем wsdl, даже если он пустой "".
* Будьте очень осторожны с телом запроса для отправки, конверт soap должен быть правильным.

надеюсь, это поможет вам!.

Пока.
Пол Манджаррес.

Другие советы

С точки зрения клиента, я не ожидал существенных различий между Axis и JAX-WS. Все, что нужно клиенту, должно быть в WSDL.

Иногда случается так, что URL, используемый при разработке WebService, ссылается на хост и порт develpoment (и, возможно, даже ContextRoot). При развертывании на конкретном сервере любой из них может быть изменен. В идеале новый WSDL мог бы быть создан с новым " привязкой " Информация.

Моим первым шагом было бы указать браузеру непосредственно на веб-службу, которую вы хотите вызвать. В моих средах, которые возвращают хороший " Привет, это веб-сервис " вид сообщения. Если вы получаете 401 не найденных ошибок, вам просто нужно изучить, как именно был развернут веб-сервис. Указан другой порт или корневой каталог контекста?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top