Last active
March 10, 2019 12:23
-
-
Save ezhov-da/7be49e55a579b72beaea96f0737799c8 to your computer and use it in GitHub Desktop.
java ee jndi name
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<pre> | |
java:<область видимости>[/<имя приложения>]/<имя модуля>/<имя EJB-компонента>[!<полностью уточненное имя интерфейса>] | |
<область видимости> - определяет последовательность пространств имен, которые отображаются в разные области видимости приложения Java EE; | |
global - префикс java:global позволяет компоненту, выполняющемуся вне приложения Java EE, получить доступ к глобальному пространству имен. | |
app — префикс java:app позволяет компоненту, выполняющемуся в рамках приложения Java EE, получить доступ к пространству имен, специфичному для приложения; | |
module — префикс java:module позволяет компоненту, выполняющемуся в рамках приложения Java EE, получить доступ к пространству имен, специфичному для модуля; | |
comp — префикс java:comp — это закрытое пространство имен, специфичное для компонента и недоступное для других компонентов; | |
<имя приложения> — требуется, только если сессионный EJB-компонент упакован в файл с расширением EAR или WAR. | |
Если дело обстоит именно так, то в <имя приложения> автоматически будет указано имя файла EAR или WAR (без указания расширения); | |
<имя модуля> — это имя модуля, в который упакован сессионный EJB-компонент. | |
Это может быть EJB-модуль в отдельном файле с расширением JAR или веб-модуль в файле с расширением WAR. В <имя модуля> по умолчанию указывается базовое имя архива без расширения файла; | |
<имя EJB-компонента> — имя сессионного EJB-компонента; | |
<полностью уточненное имя интерфейса> — это полностью уточненное имя каждого определенного бизнес-интерфейса. В случае с представлением без интерфейса именем может быть полностью уточненное имя класса EJB-компонента. | |
</pre> | |
[code:]LANG[:code]package org.agoncal.book.javaee7; | |
@Stateless | |
@Remote(ItemRemote.class) | |
@Local(ItemLocal.class) | |
@LocalBean | |
public class ItemEJB implements ItemLocal, ItemRemote { | |
// ... | |
} | |
[/code] | |
<pre> | |
После развертывания контейнер сгенерирует три JNDI-имени, чтобы внешний компонент смог получить доступ к ItemEJB, используя следующие глобальные JNDI-имена: | |
java:global/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemRemote | |
java:global/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemLocal | |
java:global/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemEJB | |
Следует отметить, что если бы ItemEJB был развернут в файле с расширением EAR (например, myapplication.ear), то вам пришлось бы указать в <имя приложения> следующее: | |
java:global/myapplication/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemRemote | |
java:global/myapplication/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemLocal | |
java:global/myapplication/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemEJB | |
Контейнер также требуется для того, чтобы сделать JNDI-имена доступными при использовании пространств имен java:app и java:module. | |
Таким образом, компонент, развернутый в том же приложении, что и ItemEJB, сможет осуществлять его поиск с использованием следующих JNDI-имен: | |
java:app/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemRemote | |
java:app/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemLocal | |
java:app/cdbookstore/ItemEJB!org.agoncal.book.javaee7.ItemEJB | |
java:module/ItemEJB!org.agoncal.book.javaee7.ItemRemote | |
java:module/ItemEJB!org.agoncal.book.javaee7.ItemLocal | |
java:module/ItemEJB!org.agoncal.book.javaee7.ItemEJB | |
Такое переносимое JNDI-имя применимо ко всем сессионным EJB-компонентам: без сохранения состояния, с сохранением состояния и одиночным. | |
</pre> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment