WebSphere应用服务器7(WAS)中EJB的默认JNDI名称是什么?

7
在WAS 7的管理控制台中,位于“应用程序>应用程序类型>WebSphere企业应用程序>应用程序>EJB JNDI名称”部分,我有一个具有四列的表格:

  • EJB模块(例如ProjectEJB.jar)
  • EJB(例如BeanBO)
  • URI(例如ProjectEJB.jar,META-INF/ejb-jar.xml)
  • 目标资源JNDI名称(带空字段)

类似这样:

enter image description here

我的LogWriter bean的jndi名称是什么?

3个回答

8
您下面有一个包含默认名称的表格。每个Bean都有简短和长形式。您可以使用ibm-ejb-jar-bnd.xml文件或通过控制台在安装期间覆盖默认设置。在模块启动期间,绑定将在SysyemOut.log中可见。您可以在此处了解有关默认绑定的信息:http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.express.iseries.doc/info/iseriesexp/ae/cejb_bindingsejbfp.html
Description                              Binding pattern
Short form local interfaces and homes    ejblocal:<package.qualified.interface>
Short form remote interfaces and homes   <package.qualified.interface>
Long form local interfaces and homes     ejblocal:<component-id>#<package.qualified.interface>
Long form remote interfaces and homes    ejb/<component-id>#<package.qualified.interface>

The component-id defaults to <application-name>/<module-jar-name>/<ejb-name>

如果在ejb-jar.xml中配置了jndi,那么它会覆盖在WebSphere管理控制台中配置的EJB JNDI查找吗? - Govinda Sakhare
1
@GovindaSakhare - 不,控制台中的JNDI配置始终优先于任何描述符,以允许您在部署后进行手动覆盖。 - Gas

4

可以通过添加一个文件 META-INF/ibm-ejb-jar-bnd.xml 来设置它 - 就像这样:

<?xml version="1.0" encoding="UTF-8"?>
<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="LogWriter" simple-binding-name="my/ejb/LogWriterService"/>
</ejb-jar-bnd>

我们曾经有一个脚本,用于为不同供应商生成这些特定于服务器的文件。

谢谢Ed!正如你所说,这是为了一个自定义的JDNI。我尝试在管理控制台中更改它,但没有“确定”或“保存”按钮,但使用ibm-ejb-jar-bnd.xml文件可以解决问题,谢谢。 - Daniel Flores

0

感谢[https://stackoverflow.com/a/16936264/539783][2]的帮助。

关于本地查找:

String jndi = "ejblocal:enterprise_app_name/ejb_web_project_name.jar/ejb_name#name.of.local.impl.interface";

远程查找:
String jndi = "ejb/enterprise_app_name/ejb_web_project_name.jar/ejb_name#name.of.remote.impl.interface";

例子:

ejblocal:ServicesEAR/LogWriter.jar/LogWriter#ILogWriter

更新:在某些情况下它无法正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接