2013-05-13 54 views
2

當我運行硒測試時,我已經有了集成測試階段。我也想在這個階段運行一些單元測試,因爲這個應用程序太複雜了,並且他的模塊之間有很多依賴關係(地獄),所以,在與OpenEJB和Arquillian交戰一週後,我相信這會是更輕鬆。連接到正在運行的JBoss AS7實例以進行測試

問題是:我如何使它工作?

我已經在運行實例,如果我實例化一個InitialContext並嘗試查找某個bean,我得到一個異常告訴我,我沒有設置java.naming.initial.factory,我不知道該放什麼。

我也抱怨註釋的豆。

假設一個Bean是這樣的:

@Stateless 
public class ABeanImpl implements ABean { 
    @EJB 
    private BBean; 
} 

將容器自動得到正確的BBean

在此先感謝

回答

1

如何連接到JBoss 7.1遠程JNDI:

這裏是代碼片段,我使用JBoss的7.1:

Properties props = new Properties(); 
String JBOSS_CONTEXT = "org.jboss.naming.remote.client.InitialContextFactory"; 
props.put("jboss.naming.client.ejb.context", true); 
props.put(Context.INITIAL_CONTEXT_FACTORY, JBOSS_CONTEXT); 
props.put(Context.PROVIDER_URL, "remote://localhost:4447"); 
props.put(Context.SECURITY_PRINCIPAL, "jboss"); 
props.put(Context.SECURITY_CREDENTIALS, "jboss123"); 
InitialContext ctx = new InitialContext(props); 

分辨率曖昧的EJB參考文獻:

根據JBoss EJB 3 reference ,如果您的EJB環境(E​​JB/EAR/Server)的任何級別在使用的接口中都是重複的,則在注入bean的解析期間將拋出異常。基於以上

,如果你有到EJB Bean上接口的引用:

  • 具有EJB模塊(JAR/WAR)的兩種實現 - 將引發異常
  • 有兩種實現方式您的應用程序(其他EJB JAR在相同的EAR中) - 將拋出異常
  • 有兩個實現,一個位於模塊中,其中一個位於其他位置的第二個位置 - 使用當前模塊的實現。
相關問題