3、EJB3.0开发第一个无会话Bean和客户端(jboss4.2.3)

1、EJB中的3种bean

  1、会话bean

    负责与客户端交互,在编写业务逻辑的地方,会话bean可以通过jdbc直接操作数据库

    分为:

    无状态会话bean:我们使用最多的是无状态会话bean,因为它的bean实例可以被多个用户使用,性能比有状态会话bean高,但是无法保存某个用户设置的值

    有状态会话bean:它的一个bean实例只供一个用户使用,所以它的性能开销比较大

  2、实体bean

    属性java持久化规范(JPA)里的技术,JPA的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束Hibernate和TopLink等ORM各自为营的局面

  3、消息驱动bean

    专门用于异步处理java消息的组件,并具有大量发消息的能力

2、开发工具

  1、开发工具:Eclipse IDE for Java EE

  2、开发EJB依赖的jar文件:在jboss4.2.3安装路径的client目录下,通常把里面的所有jar添加到类路径下

3、开发接口、实现类

  写接口

  写实现类,加@Stateless--->无会话 @Remote(HelloWorld.class)---->远程 注释

  导出jar包

  发布目录jboss-4.2.3.GA\server\default\deploy

4、java类作为客户端试验  

  public class EJBClient {
  public static void main(String[] args) {
    Properties props=new Properties();
    props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");//JNDI连接工厂
    props.setProperty("java.naming.provider.url","localhost:1099");//JNDI连接应用服务器的地址和端口
    try {
      InitialContext ctx=new InitialContext(props);
      HelloWorld helloWorld=(HelloWorld)ctx.lookup("HelloWorldBean/remote");//EjB打包成*.jar文件的默认名称EJB-CLASS-NAME

      System.out.println(helloWorld.getClass().getName());//这里的helloWorld对象实例不是我们在服务器端编写的HelloworldBean,而是一个代理对象

      System.out.println(helloWorld.sayHello("天空"));
    } catch (NamingException e) {
      System.out.println(e.getMessage());
    }
  }

}

5、Jboss默认生成的JNDI名称

  如果把EJB作为模块打包进后缀名为*.ear的JAVAEE企业应用文件,默认全局JNDI的名称是:

    本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local

    远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote

    EAR-FILE-BASE-NAME是ear文件名,EJB-CLASS-NAME是EJB非限定类名

  如果把EJB应用打包成*.jar的模块文件,默认全局JNDI的名称是:

    本地接口:EJB-CLASS-NAME/local

    远程接口:EJB-CLASS-NAME/remote

6、properties文件外置

    Properties props=new Properties();
    props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");//JNDI连接工厂
    props.setProperty("java.naming.provider.url","localhost:1099");//JNDI连接应用服务器的地址和端口

  可以更改为:

    外置文件jndi.properties中写

    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

    java.naming.provider.url=localhost:1099

 

转载于:https://www.cnblogs.com/RocketMan/p/5299278.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值