Я использую 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]
Я немного растерялся из-за того, что я мог сделать, чтобы получить доступ к модулю.