EJB学习笔记

FAQ
    

1.相比其他轻量级框架,EJB有哪些优势和弊端?
A:
优势是①分布式调用。EJB对象都是通过JNDI来查找和调用的。当然,这些对象可以是Local的也可以是Remote的。
        
②实例池管理。这个功能目前已经没有多大必要和优势。

 

2.EJB的目标说: EJB是为了让开发人员将注意力集中在业务逻辑,而非系统级的问题。那么,前者重要还是后者重要呢?前者偏重业务,例如做梳理需求的任务。后者偏重技术。

 

3.EJB除了提供AOP声明式事物,还提供了注入的功能吗?
A:
通过xml配置,例如"<resource-ref>",可以注入其他组件。

 

4.客户端都是通过JNDI获取EJB组件吗?
A:
是的。因为分布式组件以及交由EJB容器来管理是EJB的目标。不仅是SessionBeanMDB,EntityBean也是先通过JNDI查找到 Home对象实例(例如“ProductHome”),然后再通过createfindByName等方法获得EntityBean

 

5.EJB2.0 主要有哪些配置文件?分别是配置什么信息?
A: ejb-jar.xml
和厂商特定的配置文件(例如sun-ejb-jar.xml或者weblogic-ejb-jar.xml)

 

6.EJB2.0的组件如何发布成webservice
A:
需要提供wsdl文件,并定义webservices.xml文件。

 

7.JNDI有什么命名规范?

 

8.EJB组件的调用时,Local接口跟Remote接口的区别。

A: Local——客户端跟EJB容器必须在同一个vm中。
   Remote——
客户端跟EJB容器可以在不同vm中。例如用tomcat下的web应用客户端去调用weblogic下的ejb组件。

 

9.SLSB分别在EJB2EJB3中,服务器端开发和客户端调用的区别?

A  服务器端——

    Ejb2上的区别是实现的接口(javax.ejb.EJBObjectjavax.ejb.EJBLocalObject)不一样。Ejb3上的区别只是在annotation上。

    客户端调用——
    Ejb2
上的客户端调用区别在,EJBHomeEJBLocalHome。(而EJB3不需要Home接口来创建)Ejb3上的客户端调用没有区别。当然只有在同一VM中才能调用Loca接口的EJB

 

   Client的调用:
     1. SLSB
的调用(在weblogic环境下):

  Properties env = new Properties();

       env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");

       env.put(Context.PROVIDER_URL,"t3://localhost:7001");

       return env;

 

  InitialContext ctx = new InitialContext(env);

  MySessHome home = (MySessHome) ctx.lookup("MyBisonSessionBean");

  MySess sess = home.create();

  String result = sess.foo("params");

 

2. SLSB的调用(在jboss环境下):

       Properties props = new Properties();

       props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");

       props.setProperty("java.naming.provider.url", "localhost:1099");

       props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");   

 

       InitialContext ctx;

       try {

           ctx = new InitialContext(props);

           LocalHelloWorld helloworld = (LocalHelloWorld) ctx.lookup("LocalHelloWorldBean/local");

           out.println(helloworld.SayHello("佛山人"));

       } catch (NamingException e) {

           out.println(e.getMessage());

       }

 

 

    EAR包的包结构:
    

无论是.ear包还是.jar包 还是.war包,其下都有相应的META-INF文件夹。

其中.ear包下的META-INF文件夹下有application.xml文件。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值