Seam2.2迁移到2.3生成org.jboss.seam.core.init.jndiPattern或使用@JndiName错误

时间:2013-03-13 13:37:02

标签: seam jboss7.x seam2

我目前正致力于将seam2.2迁移到seam2.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时,错误已解决,但我不想在每个类上添加注释,因为我有数百个注释。

任何可能的解决方法?

谢谢,
czetsuya

1 个答案:

答案 0 :(得分:4)

在components.xml中将core:init更改为

&LT; core:init debug =“true”jndi-pattern =“java:app / your-ejb-name /#{ejbName}”/&gt;

或在bean中使用@JndiPattern注释。

@JndiName(的 “java / JBoss的:凤EJB /的 yourClassName ”)

在你的情况下,它将是@JndiName(“java / jboss:phoenix-ejb / AccountService ”)