在哪里使用@SuppressWarnings("requestfactory")
Where to use @SuppressWarnings("requestfactory")
我正在尝试使用 GWT 和 RequestFactory 构建一个简单的(只读)网络应用程序,但我不知道如何消除以下警告:
warning: The domain type DDisplay is not default-instantiable. Calling RequestContext.create(DDisplayProxy.class) will cause a server error.
Add @SuppressWarnings("requestfactory") to dismiss.
问题是,我已将@SuppressWarnings("requestfactory") 粘贴到每个可能相关的 class、接口和方法上方,但我仍然收到此消息。
由于我的 requestfactory 是只读的,我不会调用 RequestContext.create,所以这不是问题。去掉警告就好了(不创建 DDisplay 定位器 class)。
在服务器端,我有一个域对象 DDisplay 和一个 DAO,DDisplayService。
public class DDisplay {
public String getTitle () {
return "title";
}
}
和
public class DDisplayService {
public DDisplay getDisplayByUUID (String uuid) {
return new DDisplay ();
}
}
我有以下 RequestFactory:
@ProxyForName("com.foobar.server.display.DDisplay")
public interface DDisplayProxy extends EntityProxy {
String getTitle ();
}
和
public interface DisplayRequestFactory extends RequestFactory {
@ServiceName(
value="com.foobar.server.display.DDisplayService"
,locator="com.foobar.server.display.SpringServiceLocator"
)
public interface DisplayRequestContext extends RequestContext {
Request <DDisplayProxy> getDisplayByUUID (String id);
}
DisplayRequestContext display ();
}
谁能告诉我将@SuppressWarnings("requestfactory") 放在哪里以消除此错误?还是有另一种方法 - 我只需要添加一个从未使用过的定位器 class?
谢谢,
吉姆
通过阅读错误消息的来源,您似乎可以将其添加到您的 EntityProxy,DDisplayProxy
。像这样:
@SuppressWarnings("requestfactory")
@ProxyForName("com.foobar.server.display.DDisplay")
public interface DDisplayProxy extends EntityProxy {
String getTitle();
}
这来自阅读 com.google.web.bindery.requestfactory.apt.DomainChecker#visitType
的源代码,如果 currentTypeIsProxy
为真且没有定位器,并且类型不是不可初始化的,则会发出警告。从 state.warn(...)
内部(给定代理类型元素),它检查该类型上是否存在 @SuppressWarnings
注释。
我正在尝试使用 GWT 和 RequestFactory 构建一个简单的(只读)网络应用程序,但我不知道如何消除以下警告:
warning: The domain type DDisplay is not default-instantiable. Calling RequestContext.create(DDisplayProxy.class) will cause a server error.
Add @SuppressWarnings("requestfactory") to dismiss.
问题是,我已将@SuppressWarnings("requestfactory") 粘贴到每个可能相关的 class、接口和方法上方,但我仍然收到此消息。
由于我的 requestfactory 是只读的,我不会调用 RequestContext.create,所以这不是问题。去掉警告就好了(不创建 DDisplay 定位器 class)。
在服务器端,我有一个域对象 DDisplay 和一个 DAO,DDisplayService。
public class DDisplay {
public String getTitle () {
return "title";
}
}
和
public class DDisplayService {
public DDisplay getDisplayByUUID (String uuid) {
return new DDisplay ();
}
}
我有以下 RequestFactory:
@ProxyForName("com.foobar.server.display.DDisplay")
public interface DDisplayProxy extends EntityProxy {
String getTitle ();
}
和
public interface DisplayRequestFactory extends RequestFactory {
@ServiceName(
value="com.foobar.server.display.DDisplayService"
,locator="com.foobar.server.display.SpringServiceLocator"
)
public interface DisplayRequestContext extends RequestContext {
Request <DDisplayProxy> getDisplayByUUID (String id);
}
DisplayRequestContext display ();
}
谁能告诉我将@SuppressWarnings("requestfactory") 放在哪里以消除此错误?还是有另一种方法 - 我只需要添加一个从未使用过的定位器 class?
谢谢,
吉姆
通过阅读错误消息的来源,您似乎可以将其添加到您的 EntityProxy,DDisplayProxy
。像这样:
@SuppressWarnings("requestfactory")
@ProxyForName("com.foobar.server.display.DDisplay")
public interface DDisplayProxy extends EntityProxy {
String getTitle();
}
这来自阅读 com.google.web.bindery.requestfactory.apt.DomainChecker#visitType
的源代码,如果 currentTypeIsProxy
为真且没有定位器,并且类型不是不可初始化的,则会发出警告。从 state.warn(...)
内部(给定代理类型元素),它检查该类型上是否存在 @SuppressWarnings
注释。