如何更改 errai jaxrs 代理的基础 url 端点?

How to change base url endpoint for errai jaxrs proxy?

我需要调用位于不同服务器上的不同端点,我尝试更改其余服务的基础值 url。

但是我只找到了这个方法

 RestClient.create(MyService.class, otherServiceBaseUrl,
            myCallback,               
            200).doStaf() ;

关于为我的 MyService class 中的所有服务设置基础 url 的更优雅的方法有什么建议吗?

我找到了这个解决方案。 我创建了一个抽象 class DinamicCaller.

   public abstract class DinamicCaller<T> {


    public T call() {
        T call = getCaller().call();
        ((AbstractJaxrsProxy) call).setBaseUrl(getBaseUrl());
        return call;
    }

    public T call(RemoteCallback<?> callback) {
        T call = getCaller().call(callback);
        ((AbstractJaxrsProxy) call).setBaseUrl(getBaseUrl());

        return call;
    }

    public T call(RemoteCallback<?> callback, ErrorCallback<?> errorCallback) {

        T call = getCaller().call(callback, errorCallback);
        ((AbstractJaxrsProxy) call).setBaseUrl(getBaseUrl());

        return call;

    }

    protected abstract Caller<T> getCaller();


    protected abstract String getBaseUrl();
}

我创建了一个混凝土 Class

public class CallerCORSNegoziService extends DinamicCaller<CORSNegoziService> {

    @Inject
    NegozioManager negozioManager;
    @Inject
    Caller<CORSNegoziService> caller;


    @Override
    protected Caller<CORSNegoziService> getCaller() {
        return caller;
    }

    @Override
    protected String getBaseUrl() {
        return negozioManager.getNegozio().getUrl();
    }
}

在我的 class 上我注射了混凝土 class

@Inject
CallerCORSNegoziService service;

我用它

@UiHandler("testButton")
public void testButtonClick(ClickEvent event) {
      service.call(testCallback, testCallback).findAllNegozi();
}

丑陋但工作。