WFLYNAM0027: ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory

Enviornment - wildfly-9.0.2.Final, EJB 3.0

Следующая ошибка произошла при попытке подключить класс Test.java (развернутый как модуль в wildfly-9.0.2.Final@machine-A) к EJB, в то время как развернут на jboss на машине-B (291.861.301.732).

17:02:46,666 ERROR [stderr] (default task-1) javax.naming.NamingException: WFLYNAM0027: Failed instantiate InitialContextFactory org.jboss.naming.remote.client.InitialContextFactory from classloader ModuleClassLoader for Module "deployment.test.ear.test.war:main" from Service Module Loader [Root exception is java.lang.ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory from [Module "deployment.test.ear.test.war:main" from Service Module Loader]]
17:02:46,667 ERROR [stderr] (default task-1)    at org.jboss.as.naming.InitialContext.getDefaultInitCtx(InitialContext.java:118)
17:02:46,667 ERROR [stderr] (default task-1)    at org.jboss.as.naming.InitialContext.init(InitialContext.java:99)
17:02:46,670 ERROR [stderr] (default task-1)    at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
17:02:46,670 ERROR [stderr] (default task-1)    at org.jboss.as.naming.InitialContext.<init>(InitialContext.java:89)
17:02:46,670 ERROR [stderr] (default task-1)    at org.jboss.as.naming.InitialContextFactory.getInitialContext(InitialContextFactory.java:43)
17:02:46,687 ERROR [stderr] (default task-1) Caused by: java.lang.ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory from [Module "deployment.test.ear.test.war:main" from Service Module Loader]
17:02:46,688 ERROR [stderr] (default task-1)    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
17:02:46,688 ERROR [stderr] (default task-1)    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
17:02:46,688 ERROR [stderr] (default task-1)    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
17:02:46,688 ERROR [stderr] (default task-1)    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
17:02:46,688 ERROR [stderr] (default task-1)    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130)

Класс test.java присутствует в testclient.jar, а testclient.jar был добавлен в модуль с помощью команды

module add --name=testclient --resources=/Downloads/lib/test/client/testclient.jar --dependencies=javax.api

Test.java класс

package com.testmodule.pojo;

import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;

public class Test { 
public void getDbConnection(){
    try{
        Properties jndiProps = new Properties();
        jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.naming.remote.client.InitialContextFactory");
        jndiProps.put(Context.PROVIDER_URL,"remote://291.861.301.732:4447");
        jndiProps.put(Context.SECURITY_PRINCIPAL, "testuser");
        jndiProps.put(Context.SECURITY_CREDENTIALS, "testpassword");
        jndiProps.put("jboss.naming.client.ejb.context", true);
        Context context = new InitialContext(jndiProps);
    }
    catch(Exception e){e.printStackTrace();}
}}

почему эта ошибка произошла, для наглядности 'org.jboss.naming.remote.client.InitialContextFactory' для testclient.jar, если я должендобавить больше зависимостей (в настоящее время только javax.api) при развертывании testclient.jar в качестве модуля? или любая другая проблема, которая вызывает ошибку? Класс «org.jboss.naming.remote.client.InitialContextFactory» также присутствует в $ WILDFLY_HOME / bin / client / jboss-client.jar

Примечание. 291.861.301.732 - это ip удаленной системы, на котором ejb развернут в jboss. , Этот ejb вызывается из Test.java (удаленный клиент) с использованием JNDI.

В wildfly-9.0.2.Final нет jnp (который был в JBOSS 5.x), поэтому я заменил свойство "org.jnp.interfaces.NamingContextFactory" на значение org.jboss.naming.remote.client.InitialContextFactory ". почему все еще ошибка произошла?

После получения комментария добавлено следующее: «Попробуйте поместить jboss-client.jar в путь выполнения, как часть WEB-INF / lib может быть» от «Sampada Wagde»

Я не могу понять, В этом сценарии test.jsp (присутствует в test.ear -> test.war -> test.jsp) вызывает функцию getDbConnection файла Test.java. Файл test.java присутствует в testclient.jar, и этот testclient.jar был развернут как модуль. Согласно вашему предложению, когда я поместил «jboss-client.jar» в test.ear -> test.war -> WEB-INF -> lib, проблема была решена, теперь при доступе к приложению «org.jboss.naming .remote.client.InitialContextFactory 'Исключение ClassNotFound не произошло ...Но моя проблема в том, что существует несколько файлов war (например, test.war, test1.war, test2.war), и каждый файл war обращается к файлу Test.java (представленному в testclient.jar), поэтому мне нужно поставить ' Файл jboss-client.jar 'в WEB-INF / lib каждого военного архива. что будет очень сложно для меня, есть ли другой подход? и, во-вторых, как эта проблема решается путем помещения 'jboss-client.jar' в директорию WEB-INF / lib как 'org.jboss.naming.remote.client.InitialContextFactory', присутствующего в testclient.jar (не в test.ear- -> test.war).

После получения ответа было добавлено следующее: «Sampada Wagde» сервер запрашивает jboss-client.jar во время выполнения ...

Я также попытался выполнить следующие шаги 1. Поместив файл «jboss-deploy-structure.xml» в test.ear -> META-INF -> jboss-deploy-structure.xml.

<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<deployment>
    <dependencies>
        <module name="testclient" export="true" />
        <module name="jboss-client" export="true" />
    </dependencies>
</deployment>

Развертывание имени модуля как

module add --name=jboss-client --resources=/Downloads/wildfly-9.0.2.Final/bin/client/jboss-client.jar

но все же произошла следующая ошибка.

14:14:34,376 WARN  [org.jboss.modules] (default task-1) Failed to define class org.jboss.naming.remote.client.InitialContextFactory in Module "jboss-client:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /Downloads/wildfly-9.0.2.Final/modules,/Downloads/wildfly-9.0.2.Final/modules/system/layers/base)): java.lang.LinkageError: Failed to link org/jboss/naming/remote/client/InitialContextFactory (Module "jboss-client:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /Downloads/wildfly-9.0.2.Final/modules,/Downloads/wildfly-9.0.2.Final/modules/system/layers/base)))
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:437)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:269)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:77)
at org.jboss.modules.Module.loadModuleClass(Module.java:560)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197)
Caused by: java.lang.NoClassDefFoundError: javax/naming/spi/InitialContextFactory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:353)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:432)
Caused by: java.lang.ClassNotFoundException: javax.naming.spi.InitialContextFactory from [Module "jboss-client:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /Downloads/wildfly-9.0.2.Final/modules,/Downloads/wildfly-9.0.2.Final/modules/system/layers/base))]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
14:14:34,391 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /test/test.jsp: javax.servlet.ServletException: java.lang.LinkageError: Failed to link org/jboss/naming/remote/client/InitialContextFactory (Module "jboss-client:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /Downloads/wildfly-9.0.2.Final/modules,/Downloads/wildfly-9.0.2.Final/modules/system/layers/base)))
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:777)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:85)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
Caused by: java.lang.LinkageError: Failed to link org/jboss/naming/remote/client/InitialContextFactory (Module "jboss-client:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /Downloads/wildfly-9.0.2.Final/modules,/Downloads/wildfly-9.0.2.Final/modules/system/layers/base)))
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:437)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:269)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:77)
at org.jboss.modules.Module.loadModuleClass(Module.java:560)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197)
Caused by: java.lang.NoClassDefFoundError: javax/naming/spi/InitialContextFactory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:353)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:432)
Caused by: java.lang.ClassNotFoundException: javax.naming.spi.InitialContextFactory from [Module "jboss-client:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /Downloads/wildfly-9.0.2.Final/modules,/Downloads/wildfly-9.0.2.Final/modules/system/layers/base))]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)

Ответы на вопрос(2)

Ваш ответ на вопрос