关于Tomcat调用Weblogic容器Ejb T3协议

  • Tomcat调用Weblogic的T3协议!!!
    简略介绍下二者:
    (一):概括介绍这两种服务器

  • WebLogic是美国bea公司出品的一个application
    server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogic
    Server9.0是迄今为止发布的最卓越的BEA应用服务器。BEA
    WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java
    Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。完全遵循J2EE 1.4规范。
    Tomcat服务器是一个免费的开源的Web 应用服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun
    和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且很重要的是她免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。而且由于开源,它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

(二) :相同点

  • WebLogic和Tomcat都是基于java的基础架构来满足实时处理需求,不同的版本与jdk版本兼容和有所不同;因为都是要和前台交互,所以他们都基于sun公司的servlet来实现的。

(三):不同点

  • 功能性:
    WebLogic更加强大。weblogic是j2ee的应用服务器(application server),包括ejb ,jsp,servlet,jms等等,全能型的。是商业软件里排名第一的容器(JSP、servlet、EJB等),并提供其他如JAVA编辑等工具,是一个综合的开发及运行环境。
    WebLogic应该是J2EE Container(Web Container + EJB Container + XXX规范)!
    Tomcat只能算Web Container,是官方指定的JSP&Servlet容器。只实现了JSP/Servlet的相关规范,不支持EJB(硬伤啊)!不过Tomcat配合jboss和apache可以实现j2ee应用服务器功能
    一般来说考虑stucts等架构tomcat就可以了,但如果考虑EJB的话,WebLogic是比较好的选择。

简略介绍二者之后,进入正题。

  • Tomcat的应用远没有Weblogic的广泛,本身没有实现ejb,esb等规范,如果要在Tomcat中调用Weblogic项目的t3协议的接口,不做其他一些操作是无法调用成功的。T3协议是weblogic容器内部使用的一种数据交互协议,tomcat并不支持。

该如何解决这个问题,有三种思路:

  • 1,在tomcat中模拟出weblogic运行的环境出来,具体的措施就是添加一个weblogic组件,即手动将weblogic目录下server/lib里的所有jar打成一个Jar包,习惯命名wlfullclient.jar.然后将该jar包扔进Tomcat项目下WEB-INF/lib文件夹中,自动添加该包到项目的classpath。
    需要注意的是并非随便一个版本的weblogic wlfullclient.jar都可以与tomcat兼容,这两者之间存在最佳适配的版本,
    根据我的项目经验:我使用的tomcat版本是7.0.62, weblogic版本是wlserver_8.3 jdk版本是1.6,这样的版本搭配运行起来没有问题。
    如果这三个版本,其中某一个或高或低,都不能形成一个很好的版本兼容,最终的结果就是无法运行。
    总结一个版本搭配的原则:以JDK的版本为基础参照,JDK 1.6版可对应Tomcat 6.0 7.0 ,weblogic版本 8.3到10.3之间的版本;
    记住一个原则 高版本的jdk要对应较高版本的Tomcat 和weblogic,低版本jdk对应低版本omcat 和weblogic。
    2,换一种思路,既然二者不能直接用T3协议进行数据交互,那么是否考虑使用第三方的组件,来撮合二者的数据交互呢,显然是可以的。
    Web Service刚好对不同容器之间进行数据交互,进行很好的协调。
    Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
    Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么,都可以相互交换数据。
    这种方案相较上一种方案,操作起来复杂一点,但由于Web Service本身奉行简单操作,所以使用起来,并不困难。一旦熟练使用webservice,基本可以解决所有不同容器,不同环境,任何协议的数据交互问题了。
    3,第三种,既然Tomcat无法实现ejb,无法用t3协议进行交互,那么是否可以考虑更换到weblogic容器,这种方法最笨,最大动干戈,但也是最具有拓展性,一劳永逸的做法。当然这要根据自己项目的情况而定,可以更换,优先选择更换容器,不能更换,那就先考虑第一种,再考虑第二种方案。

      ***本篇博客,先以介绍思路为主。后面另开博客,讲解这个过程中出现的异常,以及如何解决,附上相关jar和代码!!!***
    

你可能感兴趣的:(工作经验)