如何更改 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();
}
丑陋但工作。
我需要调用位于不同服务器上的不同端点,我尝试更改其余服务的基础值 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();
}
丑陋但工作。