Я пытаюсь создать простой веб-сервис SOAP (калькулятор), чтобы изучить основы этой технологии. Я новичок в SOAP, поэтому я уже сделал некоторые вещи, но я не уверен, что делать дальше.
Я выбрал нисходящий подход, который означает сначала создание файла wdsl, а затем автоматическую генерацию кода.
Я создал файл wsdl с описанием службы и использовал его для создания файлов Java. У меня есть и в формате 1.1 и 2.0. Для получения файлов 2.0 я использовал инструмент wsdl2java axis2, для 1.1 я использовал инструмент java wsimport.
Из инструмента wsimport я получил следующие файлы:
- package-info.java
- ObjectFactory.java
- CalculatorService.java (название моей службы)
- Calculator.java (имя моего portType)
- Input.java (имя сложного типа)
Инструмент wsdl2java дал мне следующие файлы:
- services.xml
- CalculatorService.wsdl
- Output.java (имя элемента вывода)
- Input.java (имя элемента ввода)
- cInput.jaba (имя входного комплексного элемента)
- ExtensionMapper.java
- CalculatorServiceCallbackHandler.java
- CalculatorServiceMessageReceiverInOut.java
- CalculatorServiceSkeleton.java (включает реализацию интерфейса)
- CalculatorServiceSkeletonInterface.java
- CalculatorServiceStub.java
В файлах wsdl2java, я думаю, у меня есть все, что мне нужно, кроме реализации сервера. Что касается wsimport, то в них отсутствует реализация, и я не уверен, где ее добавить. Реализация сервера также отсутствует.
Сначала я хотел бы запустить его как локальный сервис (локальный сервер), чтобы проверить его работоспособность, а также написать клиент позже.
Я нашел пример реализации сервера здесь: Внутрипроцессный сервер службы SOAP для Java .
Это кажется довольно простым, и если возможно, я бы хотел использовать этот подход. Но я не уверен, что он будет работать с файлами, которые я сгенерировал (wsdl2java или wsimport). У меня также установлен сервер Apache, если он будет полезен. Поэтому я ищу совет, какой набор файлов использовать для настройки сервера и какой самый простой способ сделать это.
Также мне интересно, влияют ли пространства имен, используемые в файле wsdl, на доступность службы? Потому что они должны быть URI, но у меня нет ни одного для моей службы в данный момент. Поэтому для targetNamespace, xmlns: tns, адреса конечной точки и т. Д. Я использовал случайные URL-адреса. Будет ли это работать, если я пытаюсь запустить его локально или это создаст проблемы?