簡體   English   中英

ClassNotFoundException:嘗試加載InitialContext時org.jboss.naming.remote.client.InitialContextFactory

[英]ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory when trying to load InitialContext

我正在測試(使用JUnit)一個REST服務,並確保一切按預期進行,我需要使用一些EJB方法。 說,我有:

  • 測試中的班級,在這里沒有興趣;
  • 測試班

     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-remoting:// localhost:8080 remote.connection.default.connect.options.org.xnio。 Options.SASL_POLICY_NOANONYMOUS = false jboss.naming.client.ejb.context = true

    remote.connection.default.username = admin remote.connection.default.password = admin

  • 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-client添加到CLASSPATH中,但是我在我的發行版中的jboss-client附近研究了README,它說不要那樣做,而要進行gradle依賴。 所以我做了。

另一個奇怪的事情是:我從測試中獲得了代碼和屬性到同一項目中的另一個模塊(由另一個編碼器編寫)。 我嘗試運行這些測試,並且它們按預期工作。 我復制了所有內容,甚至更多(漸變依賴度),但出現此異常。

為了說明起見,我試圖簡化代碼,可能遺漏了一些重要內容。 如果需要,我可以復制安裝程序和代碼的更多部分。

我將對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'開始運行。 不確定是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM