Я создал веб-сервис с верблюдом и cxf.Настройка моего бина:
@Bean
open fun cxfServlet(): ServletRegistrationBean<CXFServlet> {
val servlet = ServletRegistrationBean(CXFServlet(), "/ws/*")
servlet.setLoadOnStartup(1)
servlet.setName("cxfServlet")
return servlet
}
@Bean
open fun cxf(): Bus {
return BusFactory.newInstance().createBus()
}
@Bean("etp")
open fun cxfEndpoint(): CxfEndpoint {
val endpoint = CxfEndpoint()
endpoint.beanId = "etp"
endpoint.address = "/etp"
endpoint.serviceClass = Product::class.java
endpoint.wsdlURL = "wsdl/example.wsdl"
endpoint.dataFormat = DataFormat.POJO
endpoint.bindingId = SOAPBinding.SOAP12HTTP_BINDING
return endpoint
}
В маршруте я пытаюсь получить сообщение так:
from("cxf:bean:etp")
.log(">> etp: start")
Но когда я отправляю сообщение из soapUI, я получаю сообщение об ошибке:
org.apache.cxf.binding.soap.SoapFault: сообщение SOAP 1.2 недопустимо при отправке в конечную точку только SOAP 1.1.
Но если я задаю значение dataFormat "RAW":
endpoint.dataFormat = DataFormat.RAW
Ошибка исчезает.В чем может быть проблема?
Я нашел настройки xml для связывания мыла:
<cxf:binding>
<soap:soapBinding version="1.2"/>
</cxf:binding>
Но где мне его установить?