0

Groovyを試してみたかったのですが、今のところ、新しいjavaeeプロジェクト(Grailsなどはありません)のビューレイヤーにのみ使用することにしました。また、groovy + javaeeの話もたくさんありましたが、私のものに一致する実用的なケースは見つかりませんでした。

だから私はmavenearプロジェクトを持っており、モデル/コントローラーのejbモジュールは今のところjavaのままです(groovyの依存関係を含めましたが、そのためにはjavaを使用する必要があるようです)が、viewモジュールは完全なgroovyをサポートしています。私はEclipse+m2eを使用していますが、これまでのところすべてが正常に統合およびコンパイルされています。ビューモジュールでは、グルーヴィーなBeanを作成することもでき、正常に機能しているようです。問題は、@EJBアノテーションを介してEJBBeanをGroovyBeanに注入する方法が見つからないことです。同様の設定の例が見つからないので、これも不可能な場合があります。

それで、私の好奇心を休めるために、誰かが私のグルーヴィーなBeanにEJBからデータを読み取らせる方法を知っているなら?上記の注釈を介する必要はまったくありません。どのような方法でも問題ありません。1つのWebサービスを作成することもできますが、それは少し複雑で冗長です。

4

1 に答える 1

0

これは少し古いスレッドであることは知っていますが、検索している人にとっては、Java EE 6 プロジェクトで Groovy をうまく使用することができました。を使用してコントローラーとコントローラーに注入された EJB の両方@EJB

これが私のセットアップです:

  • Eclipse ジュノ 4.2.2
  • Ubuntu 12.04
  • グルービー 2.1.3
  • JSF2.1
  • グラスフィッシュ 3.1.2

最もトリッキーな部分は、Groovy lib を にコピーする必要があることglassfish/libです。また、postgres jdbc ドライバーも使用します。

Eclipse で新しいエンタープライズ アプリケーション プロジェクトを作成し、以下を作成しました。

  • コネクタ モジュール: インターフェイスとモデル、すべてが Java ですが、Groovy は実行可能だと思います
  • Web モジュール: Groovy コントローラー
  • ejb モジュール: groovy ejb

コントローラー:

@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>

そして、それはうまくいきます。

于 2013-04-19T13:12:54.377 に答える