Я пытаюсь создать веб-сервис Spring, который обрабатывает входящие SOAP сообщения. Я хочу, чтобы сообщения были сопоставлены с конечной точкой и неупорядочены на основе локального имени тела запроса. На основе документации Spring https://docs.spring.io/spring-ws/site/reference/html/server.html#server -endpoint-mapping
это должно быть возможно путем создания настраиваемого сопоставления конечных точек. Однако я не нашел руководств, как это сделать. Я создал класс
public class Mapper extends AbstractEndpointMapping
и замещенный метод
@Override
protected Object getEndpointInternal(MessageContext messageContext) throws Exception {
System.out.println("Mapper");
return XRoadEndpoint.class;
}
Этот метод достигается, когда я отправляю сообщение SOAP приложению, но конечная точка не вызывается.
@Endpoint(value = "xroad")
public class XRoadEndpoint {
@ResponsePayload
public Object handleXRoadMessage(@RequestPayload Object xRoadMessage) {
System.out.println("XRoadEndpoint");
return "test";
}
}
The response I get in Postman is
No adapter for endpoint [ee.mrtnh.soap_handler_interceptor.XRoadEndpoint@112a9957]: Is your endpoint annotated with @Endpoint, or does it implement a supported interface like MessageHandler or PayloadEndpoint?
How can I create the desired custom endpoint mapping?