Ответ 1
Я получаю ошибку (...) javax.naming.NameNotFoundException: greetJndi не связан
Это означает, что ничто не связано с именем jndi greetJndi
, что очень вероятно из-за проблемы с развертыванием, учитывая невероятно низкое качество этого руководства (проверьте журналы сервера). Я вернусь к этому.
Существует ли какая-либо конкретная структура каталогов для развертывания в JBoss?
Предполагается, что внутренняя структура ejb-jar
должна быть такой (с использованием слабых соглашений об именах и пакета по умолчанию, как в упомянутой ссылке):
. ├── greetBean.java ├── greetHome.java ├── greetRemote.java └── META-INF ├── ejb-jar.xml └── jboss.xml
Но, как уже упоминалось, этот учебник полон ошибок:
- в
ejb-jar.xml
(!) имеется дополнительный символ (
<enterprise-beans>]
< - ЗДЕСЬ)
пробел отсутствует после PUBLIC
в ejb-jar.xml
и jboss.xml
(!!)
jboss.xml
неверен, он должен содержать элемент session
вместо entity
(!!!)
Вот "фиксированная" версия ejb-jar.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>greetBean</ejb-name>
<home>greetHome</home>
<remote>greetRemote</remote>
<ejb-class>greetBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
И jboss.xml
:
<?xml version="1.0"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.2//EN" "http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd">
<jboss>
<enterprise-beans>
<session>
<ejb-name>greetBean</ejb-name>
<jndi-name>greetJndi</jndi-name>
</session>
</enterprise-beans>
</jboss>
После выполнения этих изменений и повторной упаковки ejb-jar я смог успешно его развернуть:
21:48:06,512 INFO [Ejb3DependenciesDeployer] Encountered deployment [email protected]{vfszip:/home/pascal/opt/jboss-5.1.0.GA/server/default/deploy/greet.jar/} 21:48:06,534 INFO [EjbDeployer] installing bean: ejb/#greetBean,uid19981448 21:48:06,534 INFO [EjbDeployer] with dependencies: 21:48:06,534 INFO [EjbDeployer] and supplies: 21:48:06,534 INFO [EjbDeployer] jndi:greetJndi 21:48:06,624 INFO [EjbModule] Deploying greetBean 21:48:06,661 WARN [EjbModule] EJB configured to bypass security. Please verify if this is intended. Bean=greetBean Deployment=vfszip:/home/pascal/opt/jboss-5.1.0.GA/server/default/deploy/greet.jar/ 21:48:06,805 INFO [ProxyFactory] Bound EJB Home 'greetBean' to jndi 'greetJndi'
Этот учебник нуждается в существенном улучшении; Я бы посоветовал держаться подальше от roseindia.net.