4

現在、Seam 2.2 から 2.3 への移行に取り組んでいます。

ここからガイドに従っています: http://docs.jboss.org/seam/latest/reference/en-US/html/migration23.html移行したアプリをテストしています。

残念ながら、私はこのエラーで立ち往生しています:

Caused by: java.lang.IllegalArgumentException: You must specify org.jboss.seam.core.init.jndiPattern or use @JndiName:

私の components.xml では、2 つのアプローチを試しました。

  1. core:init を使用:

    <core:init debug="@debug@" jndi-pattern="@seam_jndiPattern@" />
    //where seam_jndiPattern=java:app/myApp-ejb.jar/#{ejbName}
    
  2. ステートレス Bean の一覧表示:

    <component class="org.service.admin.impl.AccountService"
            jndi-name="java:app/myApp-ejb/AccountService" />
    
    @Stateless
    @Name("accountService")
    @AutoCreate
    public class AccountService{
    }
    

しかし、両方とも次のように生成されました。

Caused by: java.lang.IllegalArgumentException: You must specify org.jboss.seam.core.init.jndiPattern or use @JndiName: accountService

しかし@JndiName、ステートレス セッション Bean にアノテーションを追加しようとすると、エラーは解決されましたが、何百ものクラスがあるため、各クラスにアノテーションを追加したくありません。可能な回避策はありますか?

4

1 に答える 1

4

components.xml変更core:initして

<core:init debug="true" jndi-pattern="java:app/**your-ejb-name**/#{ejbName}" />

または@JndiPattern、Bean で注釈を使用します。

@JndiName("java/jboss:phoenix-ejb/**yourClassName**")

あなたの場合、それは

@JndiName("java/jboss:phoenix-ejb/**AccountService**")
于 2013-03-17T19:00:51.527 に答える