具有多模块maven项目的GWT ServiceLocator

时间:2011-02-19 18:45:26

标签: gwt service-locator requestfactory

我有一个多模块GWT项目,我想使用ServiceLocators。我有3个模块:

  • “client”取决于共享
  • “共享”
  • “server”取决于共享

我写了这样的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将抛出循环依赖性错误。

谢谢!

1 个答案:

答案 0 :(得分:3)

TreeServiceLocator放入server包中,并使用@ServiceName注释而不是@Service。这些注释具有相同的效果,但前者使用字符串文字而不是类文字。如果服务器类型在GWT编译器的类路径上不可用,这将避免GWT编译的问题。