`

Ejb中jar war ear的理解和Local和remote的理解(一)

    博客分类:
  • EJB
阅读更多
  这半年来公司一直在用EJB3+strust2+JPA进行开发...使用Jboss作为服务器的分布式开发。这里对ejb进行一些了解总结
1.jar,war,ear
1.1    Jar文件 (扩展名为. Jar)我们进行使用一些框架还有java包都是jar后缀的.它存放的是一些可以使.class文件.资源(resources)、辅助文件(auxiliary files)、
配置文件(xml等).主要是提供别人便捷!
        JBOSS环境下:当我们使用Myeclipse建立一个ejb项目的时候.它add deployment进行jboss的时候就会产生一个.jar的文件..这就是一个可以进行远程和本地调用的ejb项目.
       我们一般将各个功能部分进行代码的分拆然后产生多个ejb jar项目.再使用ant将他们的接口进行打包给予别的项目进行调用.这样便于以后的分布式开发


1.2 War文件(扩展名为.War)使用tomcat开发过的和下载一些网上的源码在tomcat运行过的就知道web应用的后缀名为war..一般定制成这样的格式是方便管理...一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。
     我们最常使用建立一个web项目然后导进一些框架包(如shh的框架jar包)。然后对这些jar包的类进行调用完成我们项目开发.
JBOSS环境下:当我们使用Myeclipse建立一个web项目的时候.它add deployment进行jboss的时候就会产生一个.war的文件..如何一个.war中servlet需要使用同在JBoss下的ejb项目需要使用remote来进行调用(虽然在同一个Jboss环境下.反正web应用对Jar的调用都要是有remote接口...)

1.3 Ear文件(扩展名为.Ear)包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。(一般我们完成开发后会将ejb的jar项目和相应的web项目使用ant进行打包成ear方便部署)

2.local和remote的区别
在一个ejb项目中.session bean和entity bean之间调用使用的是local接口.
@Local({ContentMgr.class})--标志bean可以进行本地调用
@Remote({ContentMgr.class})--标志bean可以进行远程调用
由于remote接口对性能的影响很大.所以我们在能使用Local进行调用的时候尽量使用local
这里使用本地调用方式有2种
1.

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 context = new InitialContext(props);   
 RankDao rankDao = (RankDao)context.lookup("RankDaoImpl/local");   

2.使用@EJB(beanName="RankDaoImpl")

以上是一些暂时小总结.有时间再进行详细点的整理

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics