Как я могу подключиться к удаленному модулю EJB, размещенному в GlassFi sh, используя JNDI - PullRequest
0 голосов
/ 22 апреля 2020

Я использую NetBeans, у меня есть приложение Java EE, и в этом приложении у меня есть модуль EJB.

Это приложение Java EE работает на сервере GlassFi sh, в localhost, порт 8080.

В этом Java EE-приложении у меня есть отдельный модуль от модуля EJB, и я могу подключиться к нему с помощью JNDI.

В этом модуле у меня есть сервлет, где я делаю следующее:

Mensaje mensaje1= InitialContext.doLookup("java:global/EnterpriseApplication/EnterpriseApplication-ejb/Mensaje");

И он отлично работает.

Но я не могу сделать то же самое из других Java приложений. У меня есть другой проект (в IntellIJ, а не в NetBeans), где я хотел бы получить доступ к этому модулю EJB, но я получаю следующую ошибку, когда пытаюсь использовать ту же строку кода, как показано выше

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or in an application resource file: java.naming.factory.initial

После этой ошибки я попытался создать свой собственный объект InitialContext.

 Properties props =new Properties();
            props.setProperty("java.naming.factory.initial","com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");//ur server ip
props.setProperty("org.omg.CORBA.ORBInitialPort","8080");
InitialContext ctx = new InitialContext(props);
ctx.doLookup("java:global/EnterpriseApplication/EnterpriseApplication-ejb/Mensaje");

Но я получаю эту ошибку:

javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory]

Я немного растерялся из-за того, что я мог сделать, чтобы получить доступ к модулю.

...