What's the default JNDI name of an EJB in Websphere Application Server 7 (WAS)?

后端 未结 3 1120
孤独总比滥情好
孤独总比滥情好 2020-12-19 06:05

In the Administration COnsole of WAS 7, on the Applications > Application Types > WebSphere enterprise applications > application > EJB JNDI names section,

相关标签:
3条回答
  • 2020-12-19 06:33

    One can set it by adding a file META-INF/ibm-ejb-jar-bnd.xml - something like this:

    <?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>
    

    We used to have a script to generate these server-specific files for the different vendors.

    0 讨论(0)
  • 2020-12-19 06:35

    Below you have table with default names. Each bean gets short and long form. You can override default using ibm-ejb-jar-bnd.xml file or during installation via console. During module startup bindings will be visible in SysyemOut.log

    You can read about default bindings here: 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>
    
    0 讨论(0)
  • 2020-12-19 06:41

    Thanks to [https://stackoverflow.com/a/16936264/539783][2]

    For local lookup :

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

    For remote lookup :

    String jndi = "ejb/enterprise_app_name/ejb_web_project_name.jar/ejb_name#name.of.remote.impl.interface";
    

    Example :

    ejblocal:ServicesEAR/LogWriter.jar/LogWriter#ILogWriter

    UPDATE : It doesn't work in some cases.

    0 讨论(0)
提交回复
热议问题