#java #spring-boot #soap #xsd #wsdl
Вопрос:
Наш клиент требует создания сообщений с запросами XML из файла WSDL. Файл WSDL содержит около 50 запросов и ответов. Я могу разместить на порту 8080 файл WSDL и получать ответ в интерфейсе SOAP для каждого запроса.
Как создать эти XML-запросы и ответные сообщения(см. в пользовательском интерфейсе SOAP)? Существуют ли какие-либо файлы SOAP UI jar, доступные для выполнения той же работы, что и SOAP UI?
Файлы WSDL и XSD доступны, и я могу создавать классы.
Ответ №1:
Один из вариантов-скомпилировать wsdl в классы java с помощью утилиты wsimport, которую можно вызывать с помощью различных плагинов maven, таких как плагин cxf-codegen, если вы используете maven или gradle. Это приведет к созданию классов JAXB, представляющих запросы и ответы, и классов JAXW, представляющих фактические службы. Вы бы использовали сгенерированные классы для создания объектов запроса, вызова операций веб-службы и получения ответов, все полностью на java.
Комментарии:
1. Я могу генерировать классы всех элементов WS в целевой папке, но как создавать/создавать XML-сообщения для каждого запроса и ответа, как в программном обеспечении SOAP UI?
2. Ваш запрос будет представлен классом java, поэтому вы просто создаете этот класс java и вызываете в нем методы настройки для заполнения объекта запроса. Затем вы передаете этот объект запроса в качестве аргумента одному из созданных классов portType для вызова веб-службы. Jaxb используется для преобразования ваших классов java в/из xml. Видишь docs.oracle.com/javase/8/docs/api/javax/xml/bind/…
3. Не могли бы вы привести мне пример, пожалуйста?