Хорошо, наткнулся на ваш пост во второй раз, так что я уточню свой комментарий, приведенный ранее:).
Сначала я подведу итоги вашей установки:
- У вас есть работающий веб-сервис и URL-адрес, указывающий на соответствующий WSDL
- Вы попытаетесь вызвать методы WS из другого проекта Java EE на другом компьютере
Общие параметры для вызова WS:
- Используйте Внедрение зависимостей , чтобы ввести ссылку WS
- Создайте свои собственные заглушки WS
Первый вариант не будет работать в вашей настройке, потому что DI будет работать только в среде, управляемой контейнером (см. Мой комментарий). Это означает, что класс WS и исполняющий класс должны находиться в одном контейнере (например, на одном и том же сервере).
Итак, осталось только создать свои заглушки WS вручную. Поэтому вы можете использовать инструмент wsimport
, упомянутый в вашем собственном ответе. Есть несколько разных способов использовать этот инструмент. Давайте посмотрим на использование CLI:
- Перейдите в папку projekt клиента WS, используемого вашей IDE:
%IDE_WORKSPACE%/your project/src
- создайте новую папку, например,
stub
- открыть окно командной строки в этом каталоге
- выполнить следующую команду:
wsimport -keep <http://yourwsdl?wsdl>
- После обновления вы увидите несколько созданных файлов
Вернитесь в свою IDE:
Теперь вы можете использовать сгенерированные заглушки для подключения к WS, получив port
из сгенерированного service
-файла
public class WsClient {
public static void main(String[] args) {
//Create Service
'GeneratedFile'Service service = new 'GeneratedFile'Service();
//create proxy
'GeneratedFile' proxy = service.get'GeneratedFile'Port();
//invoke
System.out.println(proxy.yourMethod(yourParam));
}
}
Последние подсказки:
- Для определения цели проверьте сгенерированные файлы. В своих аннотациях иногда файл WSDL связан с локальной копией. Просто измените это обратно на ваш WSDL-URL.
AFAIK В инструменте wsimport
есть опция , чтобы установить ее непосредственно в процедуре импорта.
- Существует плагин для Eclipse под названием soapUI , который позволяет использовать инструмент
wsimport
в графическом интерфейсе пользователя Eclipse. После настройки это должно ускорить вашу работу.
- Я также нашел краткое руководство по началу работы по разработке клиентов WS с eclipse.
Надеюсь, это помогло, повеселись!
РЕДАКТИРОВАТЬ: Просто чтобы уточнить:
После того, как вы использовали инструмент wsimport
, у вас должен быть каталог, содержащий файлы, как показано на рисунке. Чтобы прояснить этот пример, вам нужно получить Service от RequestFileService
(это моя операция WS), например RequestFileService service = new RequestFileService();
, и после этого вам понадобится Port на этом сервисе типа RequestFile proxy = service.getRequestFilePort();
.
После этого вы можете вызывать вызовы вашего метода, используя порт proxy.yourMethod(yourParam);