JavaEE EJB和Groovy

时间:2013-02-11 11:05:39

标签: java-ee maven groovy ejb

我想尝试Groovy,我想在新的javaee项目中使用它仅用于视图层(没有grails或类似)。还有很多关于groovy + javaee的讨论,但我找不到一个与我匹配的工作案例。

所以我有一个maven ear项目,模型/控制器ejb模块现在将保留在java上(我包含groovy依赖项,但似乎你必须使用java),而视图模块有完整的groovy支持。我正在使用Eclipse + m2e,到目前为止,所有内容都集成并编译得很好。在视图模块中,我甚至可以制作一个groovy bean,它似乎工作正常。问题是我找不到通过@EJB注释将EJB bean注入groovy bean的方法。由于我找不到类似设置的示例,因此可能甚至不可能。

如果有人知道如何让我的groovy bean从EJB读取数据,那么只是为了休息我的好奇心?它根本不需要通过所述注释,任何方式都可以。我可以为一个人提供网络服务,但这有点过于复杂和冗余。

1 个答案:

答案 0 :(得分:0)

我知道这是一个稍微旧线程,但对于任何搜索,我都成功地在Java EE 6项目中使用了Groovy。控制器和EJB都使用@EJB注入控制器。

这是我的设置:

  • Eclipse Juno 4.2.2
  • Ubuntu 12.04
  • Groovy 2.1.3
  • JSF 2.1
  • Glassfish 3.1.2

最棘手的部分是需要将Groovy lib复制到glassfish/lib,同时使用我的postgres jdbc驱动程序。

我在Eclipse中创建了一个新的企业应用程序项目,并创建了:

  • 连接器模块:接口和模型,一切都是java,但我认为groovy是可行的
  • 网络模块:groovy控制器
  • ejb module:groovy ejbs

控制器:

@ManagedBean
@ViewScoped
class Controller {
    @EJB ServiceLocal service

    List list() {
        service.list()
    }
}

EJB:

@Stateless
class Service implements ServiceLocal {

    @Override
    public List<Model> list() {
        [
            [name: "A"],
            [name: "B"],
            [name: "C"]
        ]
    }

观点:

<h:dataTable value="#{controller.list()}" var="e">
    <h:column>
        <f:facet name="header">Name</f:facet>
        #{e.name}
    </h:column>
</h:dataTable>

它运作正常。