Java 在WebSphere 8.5中重写EJB绑定名称

Java 在WebSphere 8.5中重写EJB绑定名称,java,jakarta-ee,ejb,websphere,ejb-3.1,Java,Jakarta Ee,Ejb,Websphere,Ejb 3.1,我正在开发JavaEE应用程序,它与其他服务有许多集成。所有集成都是通过远程EJB bean完成的。因此,目前我有3个或4个EJB项目,它们被部署为WebSphere上的EAR,用作模拟(因为我在我的开发环境中无法访问真正的服务)。我想做的是将所有这些模拟组合到一个EAR包中,这样我就可以有一个单一的模拟配置页面(返回值、异常等)。所以我制作了generalMock.ear应用程序。现在的问题是EJB绑定名称与以前不同 例如,实际应用程序使用以下绑定名称: binding-name="java:

我正在开发JavaEE应用程序,它与其他服务有许多集成。所有集成都是通过远程EJB bean完成的。因此,目前我有3个或4个EJB项目,它们被部署为WebSphere上的EAR,用作模拟(因为我在我的开发环境中无法访问真正的服务)。我想做的是将所有这些模拟组合到一个EAR包中,这样我就可以有一个单一的模拟配置页面(返回值、异常等)。所以我制作了generalMock.ear应用程序。现在的问题是EJB绑定名称与以前不同

例如,实际应用程序使用以下绑定名称:

binding-name="java:global/company-app-calculator-ear/company-app-calculator-ejb/CalculatorSb!com.company.beans.app.calculator.CalculatorSbRemote" 
但现在绑定名称如下所示:

binding-name="java:global/general-mock-ear/company-app-calculator-ejb/CalculatorSb!com.company.beans.app.calculator.CalculatorSbRemote" 
有没有办法更改全局绑定名称?我试图创建文件“ibmejbjarbnd.xml”,并将其添加到ejbmock的META-INF文件夹中,在那里我想更改绑定名称,但我没有工作。 以下是我的“ibm ejb jar bnd.xml”配置文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             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="CalculatorSb">
        <interface
                binding-name="java:global/company-app-calculator-ear/company-app-calculator-ejb/CalculatorSb!com.company.beans.app.calculator.CalculatorSbRemote"
                class="com.company.beans.app.calculator.CalculatorSbRemote"/>
    </sescomon>
</ejb-jar-bnd>


我使用的是运行在Java 1.6 EE上的IBM WebSphere 8.5。

Java:名称的格式由Java EE和EJB规范定义,以实现跨提供商的可移植性。通常,规范没有提供覆盖这些名称的方法,WebSphere也没有

在传统WebSphere中,除了
java:
位置之外,ibm ejb jar bnd.xml文件中的
元素还可以用于定义ejb在服务器上下文根目录中绑定的位置(不是
java:
位置)。
绑定名称
值不能以
java:
开头

基本上,您需要更改模拟EAR的名称,或者在
application.xml
中设置应用程序名称,但这似乎只能解决模拟应用程序中某个EJB模块的问题


也许考虑使用EJB引用代替在中执行直接查找。这将允许您的应用程序始终查找EJB引用名称,该名称永远不会更改。您只需要将EJB引用名绑定到实名或模拟名,具体取决于环境。

您是否尝试通过添加文件META-INF/ibm-EJB-jar-bnd.xml来使用EJB的简单绑定名?在以下情况下,它将类似于:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd
        xmlns="http://websphere.ibm.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        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 simple-binding-name="ejb/session/myEJBBean" name="myEJBBean">

</ejb-jar-bnd>

现在,客户机可以通过将EJB重新引用映射到简单绑定名称来连接到上面的EJB

<ejb-ref name="myRef" binding-name="ejb/session/myEJBBean"/>