当前位置: 首页 > 知识库问答 >
问题:

Spring EJB远程接口调用

万修然
2023-03-14

我需要帮助从Spring调用EJB远程接口。

<session>
    <display-name>ServiceBean</display-name>
    <ejb-name>ServiceBean</ejb-name>
    <home>com.ejbproject.ejb.ServiceHome</home>
    <remote>com.ejbproject.ejb.Service</remote>
    <ejb-class>com.ejbproject.ejb.impl.ServiceBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
</session>
<jee:remote-slsb id="myServiceBean" 
                 jndi-name="ejb/ServiceBean" 
                 business-interface="com.myproject.account.ejb.ServiceBean" 
                 resource-ref='true'></jee:remote-slsb>

web应用程序部署在同一个JBoss服务器中。但是当我尝试部署时,我得到一个命名异常'ServiceBean'未绑定。我必须在web.xml中添加环境条目才能访问EJB吗(即使EJB和web应用程序都部署在同一个JBoss中)?

共有1个答案

邓兴为
2023-03-14

首先,检查您的ejb组件的真实jndi-name,通常应用服务器会在日志文件中打印一些有关它的信息。然后尝试这样定义slsb

<jee:remote-slsb
        id="taskStarter"
        jndi-name="ejb/TaskStarterBean#ru.TaskStarterRemote"
        business-interface="ru.TaskStarter"
        lookup-home-on-startup="false"
    />

我展示了我对这个结构的认识:

@Remote(TaskStarterRemote.class)
@Local(TaskStarterLocal.class)
@Stateless
public class TaskStarterBean implements TaskStarter

@Remote
public interface TaskStarterRemote extends TaskStarter

public interface TaskStarter
 类似资料:
  • 我不能从另一个ejb模块注入远程ejb。我把应用程序分成一个库和两个ejb模块。我尝试通过远程接口从一个ejb模块访问另一个模块,并获得javax.naming.NameNotFoundExc0019。我尝试从NewBean"@EJB私有CountryFacadeRemote"访问。我用了玻璃鱼。 我必须配置一些东西?谢谢。 下载源代码 MyAppTestEJB域名库: *国家: *Country

  • LFMultipleLivenessManager 调用流程 LFMultipleLivenessManager 是对LFMultipleLivenessController 调用流程进一步的封装,方便用户直接调用 1 初始化 LFMultipleLivenessManager 输入token token LFMultipleLivenessManager *manager = [[LFMulti

  • 1.初始化 创建LFLivenessSDK对象detector,具体传参请查看demo /** * 获取token * 强烈建议:appID不要放在客户端 */ private void requestToken() { } 设置参数,开启人脸识别 /** * 开始人脸识别 */ LFLivenessBu

  • LFMultipleLivenessManager 调用流程 LFMultipleLivenessManager 是对LFMultipleLivenessController 调用流程进一步的封装,方便用户直接调用 1 初始化 LFMultipleLivenessManager 输入token token LFMultipleLivenessManager *manager = [[LFMulti

  • 1.初始化 创建LFLivenessSDK对象detector,具体传参请查看demo /** * 获取token * 强烈建议:appID不要放在客户端 */ private void requestToken() { } 设置参数,开启人脸识别 /** * 开始人脸识别 */ LFLivenessBu

  • 4.2 接口调用 Camel管理端定义了两个版本的接口。第一版接口路径以"/api/"开头,第二版接口路径以"/api/v2"开头。 两个版本接口的主要区别在于:第二版本接口将更改配置、发布配置文件这两部操作聚合成为一个原子操作。则调用第二版本接口,如果成功,则Nginx当前配置为更改之后的配置;如果失败,则Nginx当前配置为调用接口之前的配置。不会出现不安全的中间状态。 第一版本接口: 更新节