您的位置:首页 > 运维架构 > Tomcat

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

2017-03-31 17:42 323 查看
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和代码!!!***
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息