gpt4 book ai didi

GWT 2.6 - RequestFactory Locator 找不到类似的域方法

转载 作者:行者123 更新时间:2023-12-04 13:49:34 24 4
gpt4 key购买 nike

我是 GWT 的新手,将 2.6 版与 RequestFactory 一起使用,但我遇到了 GWT 验证问题。一旦我开始使用 Locator 和 LocatorService,GWT 就无法在域端找到该方法(在此之前,一切正常,只是为我找到)。

下面是我的实现:

我的请求工厂是这样的:

public interface MyRequestFactory extends RequestFactory {
MyRequest createRequest();

@Service(value = MyModel.class, locator = MyModelServiceLocator.class)
public interface MyRequest extends RequestContext {
Request<MyModelProxy> find(String id);
}
}

我的服务定位器如下所示:

public class MyServiceLocator implements ServiceLocator {
private static MyService serviceInstance;

private static MyService getServiceInstance() {
if (serviceInstance == null) {
serviceInstance = new MyService();
}
return serviceInstance;
}

@Override
public Object getInstance(Class<?> klass) {
return MyServiceLocator.getServiceInstance();
}
}

我的服务看起来像:

public class MyService {
public MyModel find(String id) {
// implementations
}
}

但是 GWT 验证提示无法在域端找到“MyModel find(String)”。但是一旦我将此方法放入 MyModel 类(我真的不想这样做),它就可以正常工作。

我试着四处搜索并找到了一些相关的帖子,但这些问题都没有实际适用于我。有人可以帮帮我吗?

最佳答案

如果MyRequest中的方法在 MyService 中有他们的域对应项, 然后 @Service应该指向 MyService.class , 不是 MyModel.class .

您使用 ServiceLocator 的事实告诉 RequestFactory 它应该寻找实例方法而不是静态方法,并将使用 ServiceLocator获取 @Service 指向的服务实例.如果你有匹配的 find MyModel 中的方法(即编译时验证会通过),那么你会在运行时遇到错误,因为 MyService ServiceLocator 返回的实例无法转换为 MyModel你在 @Service 中提到的注释。

关于GWT 2.6 - RequestFactory Locator 找不到类似的域方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24278475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com