2017-09-06 54 views
-1

我正在測試(使用JUnit)一個休息服務,並使所有事情都按預期進行,我需要使用一些EJB方法。說,我有:ClassNotFoundException:org.jboss.naming.remote.client.InitialContextFactory當試圖加載InitialContext

  • 被測試的類,在這裏是沒有興趣;
  • 測試類

    public class UploadServiceTest { 
        private final String RemoteBeanLookupKey = "/project/dao/TaskManager!ru.project.dao.TaskManager"; 
        @EJB private TaskManager taskManager; 
    
        @Before 
        public void startEverythingNeeded() throws Exception { 
         InitialContext ctx = null; 
         Properties jndiProp = new Properties(); 
    
         InputStream testConfStream = getClass().getClassLoader().getResourceAsStream("jndi.properties"); 
         jndiProp.load(testConfStream); 
    
         ctx = new InitialContext(jndiProp); 
    
         taskManager = ((TaskManager) ctx.lookup(RemoteBeanLookupKey)); 
        } 
        @Test 
        public void blablabla(){ 
        } 
    } 
    
  • jndi.properties

    java.naming.factory.initial的= org.jboss.naming.remote.client.InitialContextFactory java.naming.provider.url的= HTTP的遠程://本地主機:8080 remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS =假 jboss.naming.client.ejb.context =真

    remote.connection.default.username =管理員 remote.connection.default.password =管理員

  • gradle這個依賴關係:testCompile group: 'org.wildfly', name: 'wildfly-ejb-client-bom', version: '8.2.0.Final', ext: 'pom'testCompile group: 'junit', name: 'junit', version: '4.11'provided project(path: ':dao')(這是我希望從中獲取EJB模塊)。

但是,當我嘗試運行測試時,出現在這裏,並在網上javax.naming.NoInitialContextException: Cannot instantiate class: org.jboss.naming.remote.client.InitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory]

其他類似的問題建議到JBoss的客戶端添加到CLASSPATH,但是我看着附近的JBoss自述客戶端在我的發行版中,它表示不會像這樣操作,而是改爲使用gradle依賴。所以我做了。

另一個奇怪的事情是:我從測試中獲得代碼和屬性到同一項目中的另一個模塊(由另一個編碼器編寫)。我試圖運行這些測試,並按預期工作。我複製了一切,甚至更多(gradle依賴),但得到這個異常。

我試圖簡化代碼爲了說明,我可能有一些重要的缺失。如果需要,我可以複製一些設置和代碼的部分。

回答

0

我將ejb-client的依賴從testCompile group: 'org.wildfly', name: 'wildfly-ejb-client-bom', version: '8.2.0.Final', ext: 'pom'更改爲testCompile 'org.wildfly:wildfly-ejb-client-bom:10.0.0.Final',它開始工作。不確定它是否有幫助。

相關問題