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 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 回答