SOAP клиент
Модуль для создания и регистрации SOAP сервисов по классам аннотированным javax.jws.WebService
/jakarta.jws.WebService
.
Подключение¶
Зависимость build.gradle
:
Модуль:
Зависимость build.gradle.kts
:
Модуль:
Требуется подключить реализацию HTTP клиента.
Описание¶
Подразумевается что у нас есть классы аннотированные javax.jws.WebService
/jakarta.jws.WebService
, которые могут быть созданы другими средствами,
такими как Gradle Plugin.
На основании таких классов с помощью Kora создаются реализации SOAP клиента с суффиксом Impl в том же пакете и регистрирует их как модуль с конфигурацей.
Затем конфигурация и сам SOAP сервис становятся доступны для внедрения зависимостей автоматически.
Конфигурация¶
Все конфигурации для SOAP клиентов создаются с префиксом soapClient
,
а основная часть конфигурации клиента находится под именем клиента из WSDL аннотации @WebService
,
который соответствует зачастую тегу <wsdl:binding type="tns:SimpleService">
в конфигурации WSDL.
Сервис SOAP с именем SimpleService
будет иметь конфигурацию с путем soapClient.SimpleService
.
Пример полной конфигурации, описанной в классе SoapServiceConfig
(указаны примеры значений или значения по умолчанию):
soapClient {
SimpleService {
url = "https://localhost:8090" //(1)!
timeout = "60s" //(2)!
telemetry {
logging {
enabled = false //(3)!
}
metrics {
enabled = true //(4)!
slo = [ 1, 10, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 30000, 60000, 90000 ] //(5)!
}
tracing {
enabled = true //(6)!
}
}
}
}
- URL сервиса куда будут отправляться запросы (обязательный)
- Максимальное время запроса
- Включает логгирование модуля (по умолчанию
false
) - Включает метрики модуля (по умолчанию
true
) - Настройка SLO для DistributionSummary метрики
- Включает трассировку модуля (по умолчанию
true
)
soapClient:
SimpleService:
url: "https://localhost:8090" #(1)!
timeout: "60s" #(2)!
telemetry:
logging:
enabled: false #(3)!
metrics:
enabled: true #(4)!
slo: [ 1, 10, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 30000, 60000, 90000 ] #(5)!
telemetry:
enabled: true #(6)!
- URL сервиса куда будут отправляться запросы (обязательный)
- Максимальное время запроса
- Включает логгирование модуля (по умолчанию
false
) - Включает метрики модуля (по умолчанию
true
) - Настройка SLO для DistributionSummary метрики
- Включает трассировку модуля (по умолчанию
true
)
Использование¶
После создания всех компонент созданный SOAP сервис становится доступен для внедрения, ниже показан пример для SimpleService
сервиса:
Плагин wsdl2java¶
Gradle Plugin может использоваться как один из вариантов для создания классов аннотированных javax.jws.WebService
/jakarta.jws.WebService
на основании WSDL.
Подключение¶
Использование¶
Предположим что у нас есть WSDL, где объявлен сервис SimpleService
то настройка плагина для jakarta
аннотацией будет выглядить так:
Настройка плагина build.gradle
:
wsdl2java {
cxfVersion = "4.0.2"
wsdlDir = layout.projectDirectory.dir("src/main/resources/wsdl")
useJakarta = true
markGenerated = true
verbose = false
packageName = "ru.tinkoff.kora.generated.soap"
generatedSourceDir.set(layout.buildDirectory.dir("generated/sources/wsdl2java/java"))
includesWithOptions = [
"**/simple-service.wsdl": ["-wsdlLocation", "https://kora.tinkoff.ru/simple/service?wsdl"],
]
}
Настройка плагина build.gradle.kts
:
wsdl2java {
cxfVersion = "4.0.2"
wsdlDir = layout.projectDirectory.dir("src/main/resources/wsdl")
useJakarta = true
markGenerated = true
verbose = false
packageName = "ru.tinkoff.kora.generated.soap"
generatedSourceDir.set(layout.buildDirectory.dir("generated/sources/wsdl2java/java"))
includesWithOptions.putAll(
mapOf(
"**/simple-service.wsdl" to listOf(
"-wsdlLocation",
"https://kora.tinkoff.ru/simple/service?wsdl"
)
)
)
}