我有一个多模块GWT项目,我想使用ServiceLocators。我有3个模块:
我写了这样的ServiceLocator:
public class TreeServiceLocator implements ServiceLocator {
public Object getInstance(Class<?> clazz) {
return new TreeService();
}
}
并将此类放在“共享”模块中,因为ServiceLocator包含com.google.gwt.requestfactory.shared包。但是,当我编译它时抛出一个错误,因为TreeService是在“服务器”模块中实现的,因为我需要它从服务器返回bean并与Spring交互等等。
我应该在哪个模块中实现TreeServiceLocator?此外,如果我尝试从“共享”模块中包含“服务器”,maven将抛出循环依赖性错误。
谢谢!
答案 0 :(得分:3)
将TreeServiceLocator
放入server
包中,并使用@ServiceName
注释而不是@Service
。这些注释具有相同的效果,但前者使用字符串文字而不是类文字。如果服务器类型在GWT编译器的类路径上不可用,这将避免GWT编译的问题。