WEB开发网      婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈功缁犻箖鏌嶈閸撴氨鎹㈠☉娆愬闁告劕寮堕幖鎰棯閸撗勫殌闁宠鍨块幃鈺冣偓鍦Т椤ユ繈姊哄Ч鍥р偓妤呭磻閹捐桅闁告洦鍨扮粻娑㈡煕椤愶絾绀冩い搴$Ч濮婅櫣绮欏▎鎯у壋闂佸摜濮甸崝娆愪繆閻㈢ǹ绀嬫い鏍ㄨ壘閸炪劑姊洪棃娴ゆ稒鎷呴幓鎺嶅闂佸湱鍎ら〃鍡涘煕閹烘鐓曢柡鍥ュ妼娴滄粍銇勮箛锝呭籍闁哄备鈧磭鏆嗛悗锝庡墰閺嗙娀鏌ф导娆戝埌闁靛棙甯掗~婵嬫偂鎼达絼鐢荤紓浣诡殕閸ㄥ灝顫忕紒妯诲缂佹稑顑呭▓顓炩攽椤旀枻鍏紒鐘虫崌閵嗕礁顫濋幇浣光枌婵犵數濮崑鎾趁归敐鍥┿€婇柡鈧禒瀣厽婵☆垱顑欓崵瀣偓瑙勬偠閸庤精鐏冮梺缁樏鍫曞疮閻愮數纾奸柛灞炬皑鏁堥悗瑙勬礃缁繘藝鐎靛摜妫柟顖嗕礁浠悗娈垮枛閻栫厧鐣烽悡搴樻婵☆垯璀﹂悗宕囩磽閸屾瑧鍔嶆い銊ユ閻f繈骞栨担姝屾憰闂佺粯妫冮ˉ鎾诲汲鐎n喗鐓熸俊銈傚亾闁绘妫楅埢鎾澄旈崨顔规嫼闁荤姴娲犻埀顒冩珪閻忊偓闂備礁鎼幊鎰叏閹绢喗鍋╅柣銈庡灛娴滃綊鏌熼悜妯肩畺闁哄懏绻堝娲濞戞艾顣哄┑鈽嗗亝閻熲晠銆佸▎鎺旂杸闁哄啫鍊婚惁鍫ユ⒑濮瑰洤鐏叉繛浣冲嫮顩烽柨鏇炲€归悡鏇㈡煏婵炲灝鍔ら柛鈺嬬稻椤ㄣ儵鎮欓弶鎴濐潚濡ょ姷鍋為敃銏ゃ€佸▎鎾村殐闁冲搫顑囬獮銏ゆ⒒閸屾瑦绁版い顐㈩槸閻e嘲螣閼测晝鐓嬪銈嗘閿熴儲绂嶈ぐ鎺撶厵闁绘垶蓱鐏忣厼霉濠婂啰绉烘慨濠呮缁辨帒螣閾忛€涙闂備焦瀵уú宥夊疾濞戞粎浜遍梻浣告啞濞诧箓宕归柆宥呯厱闁硅揪闄勯悡娆撴煠濞村娅呭ù鐘崇矊閳规垿鍨鹃悙钘変划闂佽鍠楅〃鍛村煡婢舵劕绠抽柟鎯ь嚟瑜板洨绱撻崒娆戣窗闁哥姵鐗犻、鏍川閹碱厽鏅i梺绋跨箳閸樠呮閻愮繝绻嗘い鏍ㄧ矌鐢稒绻涢崨顓熷枠婵﹦绮幏鍛存偡闁箑娈濈紓鍌欐祰椤曆囧磹閸噮鍤曠紓浣贯缚缁♀偓闂佹悶鍎崝宥呪枍閸ヮ剚鈷戠紒瀣濠€鎵磼鐎n偅宕岀€规洏鍨介幃浠嬪川婵犲嫬骞楅梺鐟板悑閻n亪宕规繝姘厐闁哄洢鍨洪悡銉︽叏濡灝鐓愰柣鎾跺枛閻擃偊宕堕妷銉ュБ缂備礁顑堝畷鐢垫閹烘梻纾兼俊顖濆亹閻h櫣绱撴担铏瑰笡缂佽鐗嗛悾宄邦潨閳ь剚淇婂宀婃Ш缂備浇椴哥换鍫濐潖缂佹ɑ濯寸紒娑橆儏濞堟劙姊洪幖鐐插闁告鍟块悾鐑筋敍閻愯尙楠囬梺鐟邦嚟婵潧鈻撴ィ鍐┾拺缂備焦蓱閳锋帡鏌嶅畡鎵ⅵ鐎殿噮鍋婂畷鎺楁倷鐎电ǹ骞堥梻浣瑰▕閺侇噣宕戦幘缁樼厸闁告侗鍠氶幊鍛繆閸欏濮囬摶锝夋偠濞戞帒澧查柡鍌楀亾闂傚倷鑳剁划顖炲礉閺囩倣鐔哥節閸パ冩優闂佺粯鏌ㄩ惃婵嬪绩閼恒儯浜滈柡鍐ㄦ处椤ュ鏌涢弬璇测偓婵嬪箺閸洘鍊烽柣鎴炨缚閸橀亶姊洪崫鍕偍闁告柨鏈弲鍫曨敍閻愬鍘卞┑鐐叉缁绘帞绮绘繝姘厸閻忕偟鏅晥閻庤娲﹂崑濠傜暦閻旂⒈鏁嗛柍褜鍓欓埢宥夋晲閸モ晝锛濇繛杈剧稻瑜板啯绂嶉悙顒傜瘈闁靛骏绲剧涵鐐亜閹存繃宸濈紒顔剧帛閵堬綁宕橀埡鍐ㄥ箥闂佽瀛╃粙鎺戠幓鐠恒劎涓嶆慨妞诲亾闁哄被鍔岄埥澶娢熸径鐧哥稻閵囧嫰濡搁敐鍛Е闂佽鍠楅悷鈺呫€侀弮鍫濈妞ゆ挻绻勭粈鍕⒒閸屾瑦绁版い鏇熺墵瀹曚即寮介銈囶槸婵犵數濮撮崐濠氬汲閿曞倹鐓欐い鏍仜娴滅増淇婇懠棰濆殭闁宠鍨块崺鍕礃閵娧呫偡婵$偑鍊ら崢楣冨礂濡警鍤曢悹鍥ㄧゴ濡插牓鏌曡箛鏇烆潔闁冲搫鎳忛悡蹇擃熆鐠鸿櫣澧曢柛鏃€鎸抽弻娑㈠棘濞嗙偓楔缂備浇椴搁幐濠氬箯閸涱垳鐭欓幖瀛樻尭娴滈箖鏌涘┑鍕姢闁活厽鎸鹃幉鎼佹偋閸繄鐟ㄩ梺鍝勵儎缁舵岸寮婚悢鐓庣鐟滃繒鏁☉銏$厸闁告侗鍠楅崐鎰版煛鐏炶濮傞柟顔哄€濆畷鎺戔槈濮楀棔绱� ---闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弮鍫熸殰闁稿鎸剧划顓炩槈濡搫绠诲┑鐐叉▕娴滄粓鎮″☉銏$厱婵炴垵宕獮妯汇亜閺傛寧顥㈡慨濠呮閹瑰嫰濡搁妷锔惧綒闂備胶鎳撻崵鏍箯閿燂拷
开发学院软件开发Java WebSphere 迁移: 从 JBoss v4.x 迁移到 IBM WebSp... 阅读

WebSphere 迁移: 从 JBoss v4.x 迁移到 IBM WebSphere Application Server Community Edition v2.x

 2009-12-12 00:00:00 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣椤愯姤鎱ㄥ鍡楀幊缂傚倹姘ㄩ幉绋款吋閸澀缃曢梻鍌欑濠€閬嶆惞鎼淬劌绐楅柡宥庡亞娑撳秵銇勯弽顐沪闁绘挶鍎甸弻锝夊即閻愭祴鍋撻崷顓涘亾濮樼偓瀚�闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿极閹剧粯鍋愰柟缁樺笧閳ь剦鍙冨鍝勑ч崶褏浠奸梺璇茬箲閼归箖鎮鹃悜钘夎摕闁靛濡囬崢鐢告⒑鐟欏嫷鍟忛柛鐘崇墵閵嗗倹绺介崨濠勫幈闁硅壈鎻槐鏇熺墡闂備線娼уú銈団偓姘嵆閻涱噣骞掑Δ鈧粻锝嗙節闂堟稑鏆欏ù婊堢畺閺岋綁濮€閳惰泛婀辨竟鏇熺節濮橆厾鍘甸梺缁樺姦閸撴岸鎮樻潏銊ょ箚闁圭粯甯炴晶娑氱磼缂佹ḿ娲寸€规洖宕灃闁告劕鍟犻崜婵堟崲濞戞ḿ鏆嗗┑鐘辫兌閺佹牜绱撴担浠嬪摵闁圭懓娲ら悾鐑藉箳閹搭厽鍍甸梺鐟板悁閻掞箓鎮楅幖浣光拻濞达絿鍎ら崵鈧梺鎼炲€栭悧鐘荤嵁韫囨稒鏅搁柨鐕傛嫹婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繑銇勯幘鍗炵仼缂佺媭鍨堕弻娑㈠箛闂堟稒鐏堥悗鐟版啞缁诲啴濡甸崟顖氱閻庨潧鎽滈悾濂告⒑绾拋娼愭繛鑼枎椤繒绱掑Ο鑲╂嚌闂侀€炲苯澧畝锝堝劵椤︽煡鎮¢妶澶嬬厪闁割偅绻冮崑顏呯箾瀹割喕绨婚幆鐔兼⒑鐎圭姵銆冮柤鍐茬埣瀹曟繈鏁冮埀顒勨€旈崘顔嘉ч柛鈩冾殘閻熸劙姊洪悡搴℃毐闁绘牕銈稿畷鐑樼節閸パ冨祮闂侀潧楠忕槐鏇㈠储椤忓牊鈷戦柟鑲╁仜閸旀鏌¢崨顔锯姇缂佸倹甯熼ˇ瀵哥磼鏉堛劌绗氭繛鐓庣箻閸┾剝鎷呴柨瀣垫綗闂傚倷娴囧銊╂倿閿曞倸绠查柛銉墮閺嬩線鏌熼崜褏甯涢柡鍛倐閺屻劑鎮ら崒娑橆伓闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣椤愯姤鎱ㄥ鍡楀幊缂傚倹姘ㄩ幉绋款吋閸澀缃曢梻鍌欑濠€閬嶆惞鎼淬劌绐楅柡宥庡亞娑撳秵銇勯弽顐沪闁绘挶鍎甸弻锝夊即閻愭祴鍋撻崷顓涘亾濮樼偓瀚�  闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸ゅ嫰鏌ら崫銉︽毄濞寸姵姘ㄧ槐鎾诲磼濞嗘帒鍘$紓渚囧櫘閸ㄥ爼濡撮崘顔煎窛闁哄鍨归崢娲倵楠炲灝鍔氭い锔诲灦瀹曪繝骞庨懞銉у帾闂婎偄娲﹀ú鏍ㄧ墡闂備浇顕х€垫帡宕滈悢濂夋綎闁惧繐婀辩壕鍏间繆椤栨碍鎯堟い顐㈢Т椤啴濡堕崱妤€顫庨梺鍛婎焼閸パ呭弨婵犮垼娉涜癌闁绘柨鍚嬮悡銉╂倵閿濆骸鍘撮柛瀣尰缁绘繂顫濋娑欏闁荤喐绮庢晶妤冩暜閹烘挾顩插ù鐓庣摠閻撴洟鏌熼幆褜鍤熼柍钘夘樀閺屽秶绱掑Ο鑽ゅ弳濡炪値鍋呯换鍫ュ箠濠婂懎鏋堟俊顖濐嚙椤忓綊姊婚崒娆戭槮闁硅绱曠划娆撳箣閿斿搫浜奸梺鍝勵槹閸ㄧ喖寮搁弮鍫熺厸闁告劧绲芥禍鍓х磽娴h櫣甯涚紒瀣尰缁傛帡鏁冮崒姘憋紲濠殿喗锕╅崜锕傛倵閹惰姤鈷掑ù锝呮憸閿涘秶绱掗鍛仸妤犵偞鍨垮畷鍫曨敆閸屾氨銈﹂梺璇插嚱缂嶅棙绂嶉弽顓炵哗濞寸姴顑嗛悡娆撴⒑椤撱劎鐣卞褜鍨遍妵鍕棘閸喒鍋撶憴鍕攳濠电姴娲﹂崐閿嬨亜韫囨挸顏ら柛瀣崌瀵€燁檨婵炲吋鐗曢埞鎴︽偐鐎圭姴顥濋梺绋胯閸斿酣骞夊宀€鐤€婵炴垶岣块悿鍛存⒑閸︻叀妾搁柛鐘愁殜瀵煡骞栨担鍦弳闂佺粯娲栭崐鍦偓姘炬嫹
核心提示:简介Java Enterprise Edition 5(Java™ EE5™)是面向开发和运行分布式、多层 Java 应用程序的编程平台,已开发的应用程序运行在其中一个 Java EE 容器上,WebSphere 迁移: 从 JBoss v4.x 迁移到 IBM WebSphere Applic

简介

Java Enterprise Edition 5(Java™ EE5™)是面向开发和运行分布式、多层 Java 应用程序的编程平台。已开发的应用程序运行在其中一个 Java EE 容器上。两个容器实现相同的规范,因此可以无缝地将针对一个应用服务器开发的应用程序迁移到另一个应用服务器。然而,由于类加载器机制、应用程序打包方式、本机代码的使用以及部署计划等方面存在差异,这一过程并非一帆风顺。

在本文中,我们将介绍两种应用服务器及其架构方面的异同。迁移文章 一节介绍将针对 JBoss Application Server 开发的应用程序迁移到 WebSphere Application Server Community Edition(此后简称为 Community Edition)所涉及的步骤。首先,我们将从较高的层面介绍这两种应用服务器。

JBoss 应用服务器是 Java Enterprise Edition 5 (Java EE5) 兼容应用服务器,用于应用程序开发、测试和部署,由 Red Hat 创建。注意,到目前为止,JBoss v5 一直在 jboss.org 上发布,但是 RedHat JBoss v5 尚未完整发行。JBoss v5 的迁移应该是类似的。

Community Edition 是 Java Enterprise Edition 5 (Java EE5) 认证的基于 Apache Geronimo 的应用服务器。它经过预打包,包含以下开源组件(仅列举其中一部分):

Apache Derby,用作默认的数据库服务器

Apache OpenJPA,用作持久化引擎

Apache OpenEJB,用作 EJB 容器

Apache Tomcat,用作 Web 容器

Active MQ,用作消息传递提供者

Geronimo 内核是 Geronimo 的核心,它充当粘合剂的作用,可以插入任何开源组件。

Community Edition 的一些高级特性包括:

Java 支持 - IBM 和 Sun Java。

平台支持 - SUSE、Ubuntu、Red Hat 和 Asianux Linux、AIX、Sun Solaris、Windows XP、2003、2008 和 Vista。

数据库支持 - Apache Derby、IBM DB2、IBM Informix、MySQL、Oracle 和 Microsoft SQL Server(任何 JDBC 兼容的数据库都可以使用)。

消息传递支持 - Apache ActiveMQ、WebSphere MQ。

目录服务器支持 - Apache Directory Server、IBM Tivoli Directory Server、Microsoft Active Directory Server、Open LDAP Server 和 Sun One Directory Server。

内存占用少 - 可以很轻松地开始使用 Community Edition —— 下载只占用约 100 MB,因此开发人员可以轻松下载和使用它。Community Editions 的轻巧性也意味着它可以很容易地嵌入到更大的堆栈中,这可以帮助客户和 ISV 使用 Community Edition 构建完整的解决方案。

集中式配置和控制 - Community Edition 通过管理控制台提供了监控支持。使用这一特性,您可以对多台服务器收集统计数据和性能数据,并以图形化方式将它们显示给用户。

面向 WebSphere Application Server 家族的可移植性 - 您对 WebSphere Application Server Community Edition 的投资将随时间而增值,因为开源社区将日益成熟并不断创新。同样,WebSphere Application Server Community Edition 使您能够访问完整的、可靠的 WebSphere 中间件产品组合。当您的需求随时间增加时,IBM 可以通过 WebSphere Application Server 配置提供高级的功能,比如 SOA。

免费产品许可 - 免费用于开发、测试和部署。

30 天免费试用支持 - Community Edition 提供了 30 天免费试用支持,用户因此可以感受 IBM 支持的优势。

Eclipse 插件,用于应用程序开发、测试和部署。

开放论坛,可以回答您的所有问题。您可以在 IBM developerWorks 论坛提出任何有关 Community Edition 的疑问。

架构异同

下面的小节展示 Community Edition 和 JBoss Application Server 的架构图。


图 1. Community Edition 的架构图
WebSphere 迁移: 从 JBoss v4.x 迁移到 IBM WebSphere Application Server Community Edition v2.x


图 2. JBoss Application Server 的架构图
WebSphere 迁移: 从 JBoss v4.x 迁移到 IBM WebSphere Application Server Community Edition v2.x

表 1 展示了 JBoss Application Server 和 Community Edition 在架构方面的异同:


表 1. JBoss 和 Community Edition 特性对比

特性 JBoss Community Edition
Enterprise Java Beans (EJB) 支持 EJB 3.0 规范 支持 EJB 3.0 规范
Java Connector Architecture (JCA) 支持 JCA 1.5 规范 支持 JCA 1.5 规范
Java Servlets 支持 Servlets 2.5 规范 支持 Servlets 2.5 规范
Java Server Pages (JSP) 支持 JSP 2.1 规范 支持 JSP 2.1 规范
Java Server Faces (JSF) 支持 JSF 1.2 规范 支持 JSF 1.2 规范
事务 支持 XA,本地,无事务 支持 XA,本地,无事务
JTA 实现 通过 JBoss JTA 支持 JTA 通过 ObjectWeb JOTM 和 HOWL 提供事务支持
连接池和管理 JBossCX 框架 通过 Codehaus TranQL 定制 Geronimo 代码
WebContainer Apache Tomcat 6.0 Apache Tomcat 6.0.20
EJB 容器 JBoss 自有实现 Apache OpenEJB
持久性提供者 Hibernate Apache OpenJPA
EJB 应用程序 Deployment Descriptor 在 jboss.xml 中配置 在 openejb-jar.xml 中配置
Web 应用程序部署描述符 在 jboss-web.xml 中配置 在 geronimo-web.xml 中配置
EAR 应用程序部署描述符 在 jboss-app.xml 中配置 在 geronimo-application.xml 中配置
JPA 部署描述符 在 persistence.xml 中配置 在 persistence.xml 中配置

常见迁移问题

本节介绍您可能会遇到的最常见迁移问题。

Java EE 实现差异

在迁移过程中,我们会遇到由于供应商在解释 Java EE 规范方面的差异而引起的问题。比如,一些应用服务器在验证 Java EE 应用程序方面并没有 WebSphere 产品家族那样严格,因此有时部署描述符就会无法通过验证。另一个例子就是在 JSP 中使用单引号和双引号在 WebSphere 产品家族编译期间会出错。

与类加载器相关的问题

Java 类加载器负责定位和加载类。应用服务器类加载器非常复杂,因此跟踪和解决这些问题也变得十分困难。每个 Java EE 应用服务器都使用类加载器的定制实现,由于 Java EE 规范目前并未覆盖类加载器。例如,Community Edition 具有一个父-子类加载器结构,而 JBoss 使用一种统一的类加载器方法。

共享库

这些库可以用于多个应用程序或整个服务器。共享库位于不同的位置,并且其配置也因服务器而异。例如,在 Community Edition 中,可以有几种方法来配置共享库:

在应用服务器目录中,向部署计划添加对共享库的依赖关系。

在应用服务器目录的外部,向部署计划添加 GBean。

在 JBoss 中,在特定于 JBoss 的部署计划中为库目录添加一个条目。

绑定库

每个平台都捆绑了一组独特的框架和库,例如,Apache Xerces 和 Apache Xalan。这些库的版本和类加载器对于每个平台都是不同的。

部署描述符

Java EE 规范并没有涵盖应用程序部署和配置的所有方面。这就是我们使用特定于供应商的部署描述符的原因。每个应用服务器使用一组不同的文件集合;这是因为它们以不同的方式实现并具有不同的特性集。如表 1 所述,JBoss 使用的部署计划的名称与 Community Edition 使用的部署计划的名称不同。例如,JBoss 将其 Web 应用程序部署描述符命名为 jboss-web.xml,而 Community Edition 将其称为 geronimo-web.xml。在用于验证每个部署计划的模式定义方面,可能还存在许多差异。

应用程序打包方式

打包方式对于移植和迁移十分重要。每个应用程序都使用不同的方式打包。这一点,再加上每个应用服务器中的不同类加载器实现,会为迁移带来潜在的问题。要避免这些问题,应当始终遵循 Java EE 规范,其中包含了有关应用程序打包方式的规范。应用程序通常被打包到一个 EAR 文件,它可能由以下模块组成:

EJB

包含 EJB 类文件和部署描述符。

WAR

包含部署描述符的 Web 应用程序模块。

JAR

一个 JAR 文件,包含其他模块和部署描述符用于 Java EE 应用程序客户机的常用类。

RAR

Resource Adapter 归档是一个 JAR 文件,包含 J2C 架构的资源适配器。

使用本地代码

Java 平台允许通过 Java Native Interface (JNI) 使用本机代码,例如,使用 C 或 C++ 编写的代码。使用本机代码会在迁移到不同操作系统时引发问题。例如,一个运行在 Windows 上的应用程序可能使用 .DLL 文件,而当您迁移到 Linux 平台时,同一个应用程序则会使用 .SO 文件。

JBoss Extensions

JBoss 添加了一些特定于 JBoss 的服务器扩展(JBoss Jars),以增强某些应用程序特性。这些扩展需要被解析为它们的 Java EE 规范。

迁移文章

下面这些文章中列出的迁移步骤可以帮助您理解本文讨论的一些难题,并帮助您将 JBoss 应用程序迁移到 Community Edition。

JBoss to Geronimo - Servlets and JSPs Migration

JBoss to Geronimo - JDBC Migration

JBoss to Geronimo - Hibernate Migration

JBoss to Geronimo - EJB-Session Beans Migration

JBoss to Geronimo - EJB-BMP Migration

结束语

本文解释了如何将代码从 JBoss Application Server 迁移并部署到 WebSphere Application Server Community Edition。本文提供的样例应用程序重点介绍了这两种实现之间的主要区别。

Tags:WebSphere 迁移 JBoss

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接