栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JNDI没有EJB接收器可用于处理

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JNDI没有EJB接收器可用于处理

之所以收到上述错误,是因为您尝试使用绝对JNDI名称访问远程EJB。

如文档所述:

HTTP的远程处理 客户端假设在远程查找JNDI名称是相对于java的:JBoss的/导出的命名空间,绝对JNDI名称的查询将失败。

因此,在将应用程序部署到WildFly上之后,应该在服务器控制台上看到类似以下内容:

JNDI bindings for session bean named NewSessionBean in deployment unit deployment <your_deployment_unit> are as follows:    java:global[/<application_name>]/<module_name>/<ejb_name>[!<interface_name>]    java:app[/<module_name>]/<ejb_name>[!<interface_name>]    java:module/<ejb_name>[!<interface_name>]    java:jboss/exported[/<application_name>]/<module_name>/<ejb_name>[!<interface_name>]    java:global/[/<application_name>]/<module_name>/<ejb_name>    java:app[/<module_name>]/<ejb_name>    java:module/<ejb_name>

因此,考虑到 java:jboss / exported 上下文,获得EJB的正确方法应该是:

// Normally the appName is the EAR name// Leave it empty if your application isn't packaged in a EARString appName = "your_application_name/";// The EJB module nameString moduleName = "ejb_module_name/";String beanName = NewSessionBean.class.getSimpleName();String viewClassName = NewSessionBeanRemote.class.getName();(NewSessionBeanRemote) context.lookup(appName + moduleName + beanName + "!" + viewClassName);

为了进一步阅读,我建议您也看看Java EE JNDI语法以及WildFly的JNDI参考。

关于您的凭证,由于您的EJB不需要任何类型的身份验证即可访问它们,因此它们不是必需的。通常,仅在例如拥有使用LDAP服务提供商的应用程序时才需要这样做。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号