2013-03-22 4 views
1

Я пытаюсь улучшить свое понимание удаленного вызова EJB.Лучший способ вызвать удаленный EJB

У меня есть код вроде этого рабочего, который делает удаленный поиск JNDI на моем сервере:

private InitialContext jndiContext;  
private AdderBeanRemote bean1; 

Properties props = new Properties(); 
props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory"); 
props.setProperty("org.omg.CORBA.ORBInitialHost", "10.0.0.99"); 
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); 
jndiContext = new InitialContext(props); 
bean1 = (AdderBeanRemote) jndiContext.lookup("com.suspectclass.sgifford.test8bean.AdderBeanRemote"); 

Но это, кажется, путь к сложному, и жёстко много данных конкретного приложения в моем приложении; например, если бы я хотел использовать другой сервер или перенумеровать свою сеть, мне пришлось бы изменить мое приложение, а затем перекомпилировать и повторно развернуть.

Я видел некоторые решения, которые используют «jndi.properties», но до сих пор я не работал, и, во всяком случае, мне все равно потребуется перекомпилировать и переделать, чтобы что-то изменить.

Есть ли более простой способ сделать это, что не требует жесткого кодирования моей информации о сети в моем приложении? Или это лучшее, что я могу сделать?

Спасибо!

----- Скотт.

ответ

0

Я думаю, что внешний файл .properties - это способ избежать повторной компиляции.

Этот файл может быть либо вне упаковано .jar в виде отдельного файла в файловой системе

или упакованного в «конфигурационной resources.jar», который вы приносите на пути к классам. This вопрос охватывает основные чтения свойств на некоторых различных сценариях развертывания

Если вы хотите dwelve больше в jndi.properties, далее в oracle, я думаю, используя jndi.properties больше рекомендованного пути, как вам избежать чтение свойств программно. Но вы можете достичь более быстрых результатов, просто прочитав домашний файл .properties из файловой системы.

+0

Спасибо, мне нужно узнать больше о конфигурации-resources.jar! – sgifford

+0

Возможно, я вас обманул. Я имел в виду, что вы можете упаковывать конфигурационные файлы в отдельный .jar, а не связывать их в своем приложении. Здесь нет понятия, это просто имя, которое я придумал. –

+0

А, я вижу, я googled «configuration-resources.jar» и придумал некоторые хиты, поэтому я подумал, что это что-то. Значит, они просто будут отдельным JAR в моем приложении WAR или EAR? – sgifford

Смежные вопросы