2011-08-08 43 views
1

我有一個EJB:如何強制OpenEJB的忽略mappedName和使用openejb.jndiname.format代替

@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無法做到這一點,我會感謝任何解決方法。

回答

0

由於所描述的用例不被支持,我已經創建一個補丁

mappedName.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 

並添加

container/openejb-core/target/openejb-core-3.1.4.jar

作爲第一個條目的類路徑。

0

現在沒有什麼,但我們可以添加一個標誌來配置它。你使用什麼版本?

+0

謝謝你的答案,一面旗幟會很棒。這將允許我精確地匹配項目的Weblogic jndi名稱格式。我使用Apache OpenEJB 3.1.4 build:20101112-03:32。 – mmm

+0

我試圖得到相同的行爲,嗯。你知道它的補丁是否集成到應用程序中? – Teocali

+0

我不確定,但我沒有提交。 – mmm