2

我有一个多模块 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 将引发循环依赖错误。

谢谢!

4

1 回答 1

3

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

于 2011-02-21T01:48:39.600 回答