![](/img/trans.png)
[英]ClassNotFoundException: 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.