一个Ejb调用另一个Ejb

一个Ejb调用另一个Ejb有两种方法:

第一是同个JNDI 查找:
InitialContext ctx = new InitialContext();
IHelloWord helloworld = (IHelloWord) ctx.lookup("HelloWorld/remote");

第二种:通过依赖注入:
<1、@EJB IHelloWord helloworld ;
表示实现了IHelloWord 接口的Ejb当有多个Ejb实现了这个接口的时候需要指定需要注入Ejb名称
@EJB(beanName="Ejb名称") IHelloWord helloworld ;
<2、当需要使用定时服务的时候就不能使用@EJB而使用@Resource

@Resource TimeService timeservice;

<3、注入数据源
@Resource(mappedName="java:数据源的JNDI名称") DataSource datasource;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是一个简单的 EJB3 的示例: 首先,我们需要创建一个 EJB 接口: ``` @Remote public interface GreetingService { public String sayHello(String name); } ``` 然后,我们需要创建一个 EJB 实现类: ``` @Stateless public class GreetingServiceImpl implements GreetingService { @Override public String sayHello(String name) { return "Hello, " + name + "!"; } } ``` 在这个示例中,我们使用了 `@Remote` 注解将 `GreetingService` 标记为远程 EJB 接口,表示这个接口可以通过网络被远程调用。同时,我们使用了 `@Stateless` 注解将 `GreetingServiceImpl` 标记为无状态会话 EJB,表示这个 EJB 实现类没有状态,每次调用都是独立的。 最后,我们需要在 EJB 容器中部署这个 EJB,这里我们使用了 JavaEE 容器来完成这个任务。在项目的 `pom.xml` 文件中添加如下依赖: ``` <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> ``` 然后,我们在容器中添加以下配置: ``` <ejb-jar> <enterprise-beans> <session> <ejb-name>GreetingService</ejb-name> <ejb-class>com.example.GreetingServiceImpl</ejb-class> <session-type>Stateless</session-type> </session> </enterprise-beans> </ejb-jar> ``` 现在,我们可以通过 JNDI 查找这个 EJB,然后调用它的方法: ``` Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); props.put(Context.PROVIDER_URL, "remote://localhost:4447"); props.put(Context.SECURITY_PRINCIPAL, "username"); props.put(Context.SECURITY_CREDENTIALS, "password"); InitialContext context = new InitialContext(props); GreetingService service = (GreetingService) context.lookup("ejb:/myapp/GreetingService!com.example.GreetingService"); String message = service.sayHello("World"); System.out.println(message); ``` 这个示例中,我们使用了 JBoss AS 7 作为容器,通过 JNDI 查找 `GreetingService` EJB,然后调用它的 `sayHello` 方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青年IT男

您的打赏就是对我的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值