javax.naming.NameNotFoundException
我正在运行一个使用JBoss5容器的ejb示例。我正在举一个例子 .javax.naming.NameNotFoundException,java,jboss,jakarta-ee,ejb-3.0,jndi,Java,Jboss,Jakarta Ee,Ejb 3.0,Jndi,我正在运行一个使用JBoss5容器的ejb示例。我正在举一个例子 . 在这个示例中,我在JBoss中部署了bean,在Tomcat中部署了一个应用程序(从JBoss访问bean)。我在tomcat服务器的屏幕上看到错误 javax.naming.NameNotFoundException:greetJndi未绑定 (greetJndi是jboss.xml文件中的jndi名称) JBoss中是否有要部署的特定目录结构 谢谢,这个错误意味着您正在尝试查找未连接到任何EJB组件的JNDI名称-具有该名
在这个示例中,我在JBoss中部署了bean,在Tomcat中部署了一个应用程序(从JBoss访问bean)。我在tomcat服务器的屏幕上看到错误
javax.naming.NameNotFoundException:greetJndi未绑定
(greetJndi是jboss.xml文件中的jndi名称) JBoss中是否有要部署的特定目录结构
谢谢,这个错误意味着您正在尝试查找未连接到任何EJB组件的JNDI名称-具有该名称的组件不存在 就dir结构而言:您必须使用EJB组件创建一个JAR文件。据我所知,您希望使用EJB2.X组件(至少链接的示例表明),因此JAR文件的结构应该是: /com/mypackage/MyEJB.class /com/mypackage/MyEJBInterface.class /com/mypackage/etc。。。等java类 /META-INF/ejb-jar.xml /META-INF/jboss.xml JAR文件或多或少是ZIP文件,文件扩展名从ZIP更改为JAR 顺便说一句,如果您使用JBoss5,您可以使用EJB3.0,这更容易配置。最简单的组件是
@Stateless(mappedName="MyComponentName")
@Remote(MyEJBInterface.class)
public class MyEJB implements MyEJBInterface{
public void bussinesMethod(){
}
}
不需要ejb-jar.xml,只需要带有MyEJB和MyEJBInterface编译类的ejb-jar
现在,您需要在客户端代码中查找“MyComponentName”
我收到错误(…)javax.naming.NameNotFoundException:greetJndi未绑定
这意味着没有任何东西绑定到jndi名称greetJndi
,这很可能是因为本教程的质量极低(请查看服务器日志)导致的部署问题。我会回来的
JBoss中是否有要部署的特定目录结构
ejbjar
的内部结构应该是这样的(使用糟糕的命名约定和默认包,如前面提到的链接所示):
以及jboss.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>
<?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 AbstractVFSDeploymentContext@5060868{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'
21:48:06512信息[Ejb3DependenciesDeployer]遇到部署问题AbstractVFSDeploymentContext@5060868{vfszip:/home/pascal/opt/jboss-5.1.0.GA/server/default/deploy/greet.jar/}
21:48:06534信息[EjbDeployer]安装bean:ejb/#greetBean,uid19981448
21:48:06534具有依赖项的信息[EjbDeployer]:
21:48:06534信息[EjbDeployer]和供应品:
21:48:06534信息[EjbDeployer]jndi:greetJndi
21:48:06624信息[EjbModule]正在部署greetBean
21:48:06661警告[EjbModule]配置为绕过安全性的EJB。请验证是否有意这样做。Bean=greetBean部署=vfszip:/home/pascal/opt/jboss-5.1.0.GA/server/default/deploy/greet.jar/
21:48:06805信息[ProxyFactory]将EJB主“greetBean”绑定到jndi“greetJndi”
该教程需要显著改进;我建议远离roseindia.net。你能帮我写这篇文章吗:
21:48:06,512 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@5060868{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'