1

我有一个 EJB:

@Stateless(mappedName = "MetadataFacade")
public class MetadataFacade implements MetadataFacadeRemote {

并使用以下方式配置 openEJB:

-Dopenejb.jndiname.format={ejbClass.simpleName}#{interfaceClass}

当嵌入式 openEJB 启动时,它会忽略 openejb.jndiname.format 选项并创建错误的 JNDI 名称:

INFO   info, Jndi(name=MetadataFacade) --> Ejb(deployment-id=MetadataFacade)

如何将其配置为使用 openejb.jndiname.format 选项并创建类似于以下内容的 JNDI 名称:

MetadataFacade#my.package.MetadataFacadeRemote

?

如果 openEJB 不能做到这一点,我将感谢任何解决方法。

4

2 回答 2

0

现在什么都没有,但我们可能可以添加一个标志来配置它。你用的是什么版本?

于 2011-08-08T19:34:00.850 回答
0

由于不支持所描述的用例,我创建了一个补丁

映射名称.patch

它禁用了原始行为,而是添加了一个新变量ejbClass.mappedName,它可以在openejb.jndiname.format中使用。


该补丁适用于以下内容的头部(修订版 1034599):

 http://svn.apache.org/repos/asf/openejb/tags/openejb-3.1.4

使用以下命令将其应用到源根目录:

patch -p0 -i mappedName.patch

然后使用以下命令构建 openEJB:

mvn -Dmaven.{test,itest}.skip -Dassemble clean install

并添加

容器/openejb-core/target/openejb-core-3.1.4.jar

到您的类路径作为第一个条目。

于 2011-08-25T22:17:27.000 回答