обернуть вызов SOAP (WebServiceGatewaySupport) с помощью Hystrix - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь найти пример использования hystrix с вызовом SOAP, и все, что я мог найти примеры того же с REST.

Из документации hystrix кажется, что это возможно, если Вы могли бы указать мне на пример, который был бы полезен.

Кроме того, если есть какие-либо лучшие способы иметь согласованный прерыватель цепи между вызовами REST и SOAP (возможно, расширяемый для EJB).

1 Ответ

0 голосов
/ 24 февраля 2020

Вы можете сделать это, создав внутренний класс, который расширяет HystrixCommand, а затем переопределить метод run ().

public class webServiceClient extends WebServiceGatewaySupport {
public Response callsoap(Request request) {
    SoapCommand sfc = new SoapCommand(getWebServiceTemplate(), request, 
            soapRequestHeaderModifier, configuration);
    return  sfc.execute();
}

class SoapCommand extends HystrixCommand<Response>{
    public SoapCommand() {
        super(HystrixCommandGroupKey.Factory.asKey("example"));
    }
    @Override
    protected Response run() {
        return (Response) webServiceTemplate.marshalSendAndReceive(configuration.getUri(), 
                request, soapRequestHeaderModifier);
    }
    //fallback method goes here
}

}

...