Опитвам се да създам проста SOAP уеб услуга (калкулатор), за да науча основите на тази технология. Аз съм нов в SOAP, така че вече направих някои неща, но не съм сигурен какво да правя по-нататък.
Избрах подход отгоре надолу, което означава първо създаване на wdsl файл и след това автоматично генериране на кода. Създадох wsdl файл с описанието на услугата и го използвах за генериране на java файлове. Имам го във формат 1.1 и 2.0. За да получа 2.0 файлове използвах инструмента wsdl2java на axis2, за 1.1 използвах инструмента java wsimport.
От инструмента wsimport получих следните файлове:
- информация за пакета.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-и. Ще работи ли, ако се опитвам да го стартирам локално, или ще създаде проблеми?