gpt4 book ai didi

java - 资源的 JNDI 查找失败

转载 作者:行者123 更新时间:2023-12-04 04:44:48 27 4
gpt4 key购买 nike

我正在使用 RAD+Webshere-8.5.1 运行 EJB 应用程序。我必须在我的 EJB 中添加发送电子邮件功能,为此我在 IBM 控制台应用程序中配置了虚拟邮件 session ,如下所示
enter image description here

我试图在我的无状态 Ejb 中访问

@Resource(name="mail/sandMailSession")
私有(private) session sandMailSession;

但它失败了,因为 NameNotFoundException。

我们是否需要其他设置才能绑定(bind)?

最佳答案

'mail/sandMailSession' 是在全局命名空间中定义的名称。您应该使用 ibm-ejb-jar-bnd.xml 将邮件 session 绑定(bind)到本地组件 namespace 。 META-INF 内的文件目录:

<ejb-jar-bnd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd" version="1.0">
<session name="NAME_OF_EJB">
<resource-ref name="mail/sandMailSession" binding-name="mail/sandMailSession"/>
</session>
</ejb-jar-bnd>

请注意 namebinding-name是单独的属性并且可以具有不同的值,尽管在您的情况下它们是相同的。 binding-name是全局命名空间中资源的名称。

关于java - 资源的 JNDI 查找失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362208/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com