本文的目的是帮助您将Java EE资源从JBoss和WebLogic Server迁移到Liberty概要文件。 该工具还支持将Java EE资源从WebSphere Application Server完整概要文件迁移到Liberty概要文件。 这使您能够在Liberty概要文件中建立运行该应用程序所需的Java EE资源。 另一篇文章是提供关于如何从Apache Tomcat上迁移的Java EE资源的自由配置文件(参见相关主题 )。
在本文中, Java EE资源是指通过脱机管理过程在Java服务器中创建的管理对象,并由应用程序在运行时对其进行访问。 这些资源必须存在,否则应用程序将无法正常运行。 这些Java EE资源的示例包括JMS连接工厂,JMS队列,JMS主题,JDBC数据源,JavaMail会话等。
要迁移这些Java EE资源,您必须能够确定应用程序所需的管理对象集。 通常,由于缺少文档或管理控制台访问权限,因此信息不容易获得。
手动检查Java EE服务器的XML配置文件或从头开始创建新资源通常很繁琐且容易出错,尤其是在处理大量Java EE资源时。 无法正确处理将导致应用程序无法正常运行。
Liberty概要文件的Java EE资源在单个server.xml文件中定义。 这与WebSphere Application Server完整概要文件非常不同,在WebSphere概要文件中,所有Java EE资源都是通过管理控制台或通过wsadmin工具通过脚本创建的。 在自由,这些Java EE资源手动创建既可以通过文本编辑器,或使用WebSphere Application Server开发人员工具插件(参见通过Eclipse的相关主题 )。
本文介绍了一个新的Eclipse插件WebSphere Configuration Migration Toolkit ,它可以帮助企业快速且经济高效地将Java EE资源从WebLogic Server,JBoss Server或WebSphere Application Server V7.0(及更高版本)迁移到自由档案。
尽管本文的重点是Liberty概要文件,但是此工具还支持将Java EE资源从WebLogic Server,JBoss AS和WebSphere Application Server V7.0(及更高版本)迁移到WebSphere Application Server V8.5完整概要文件。 因此,本文还将包括这些用例的说明。 “ 相关主题”部分中的下载和论坛链接也涵盖了这些使用方案。
从发布之日起,此工具支持从以下Java EE服务器进行运行时迁移:
该工具的主要目的是帮助开发人员使用运行移植的应用程序所需的Java EE资源快速设置其Liberty或Full概要文件服务器。 管理员也可以使用此工具来配置系统测试和生产环境。 对于更复杂的环境,可能需要一些手动干预; 例如,设置数据库密码以配置持久消息传递,等等。
Configuration Migration Toolkit被打包为Eclipse插件。
该工具将扫描现有Java EE服务器的XML配置文件,以查找Java EE资源。 然后,向用户提供该工具找到的Java EE资源列表。
接下来,该工具使用户可以提供其他信息,例如新密码,JNDI名称等。 最后,该工具使用发现的Java EE资源以及所做的任何更改为Liberty概要文件生成server.xml文件。
表1显示了该工具在不同的迁移方案中支持哪些Java EE资源,例如迁移到Liberty概要文件和迁移到WebSphere Application Server Full概要文件。
Java EE资源 | JBoss到自由 | WebLogic到自由 | WebSphere V7 +完全自由 | JBoss到WebSphere的完整概要文件 | WebLogic to WebSphere完整概要文件 | WebSphere V7 +完整版到WebSphere V8.5完整版 |
---|---|---|---|---|---|---|
JDBC提供程序 | 是 | 是 | 是 | 是 | 是 | 是 |
数据源 | 是的1 | 是的1 | 是的1 | 是的2 | 是的2 | 是的2 |
JMS提供者 | 不适用 | 不适用 | 不适用 | 是 | 是 | 是 |
国外JMS提供商 | 不适用 | 不适用 | 不适用 | 没有 | 是 | 没有 |
JMS目的地 | 不适用 | 不适用 | 不适用 | 没有 | 是 | 是 |
JMS主题 | 是 | 是 | 是 | 是 | 是 | 是 |
JMS队列 | 是 | 是 | 是 | 是 | 是 | 是 |
激活规范 | 是 | 是 | 是 | 是 | 是 | 是 |
队列激活规范 | 是 | 是 | 是 | 是 | 是 | 是 |
主题激活规范 | 是 | 是 | 是 | 是 | 是 | 是 |
JMS连接工厂 | 是 | 是 | 是 | 是 | 是 | 是 |
JMS主题连接工厂 | 是 | 是 | 是 | 是 | 是 | 是 |
JMS队列连接工厂 | 是 | 是 | 是 | 是 | 是 | 是 |
邮件会话 | 没有 | 没有 | 没有 | 没有 | 是 | 没有 |
邮件提供者 | 没有 | 没有 | 没有 | 没有 | 是 | 没有 |
JCA认证别名 | 是 | 是 | 是 | 是 | 是 | 是 |
服务集成总线3 | 是 | 是 | 是 | 是 | 是 | 是 |
配置全局安全性和LDAP用户注册表 | 是 | 是 | 是 | 是 | 是 | 没有 |
笔记:
1支持Oracle JDBC驱动程序,DB2通用JDBC驱动程序,使用IBM JCC驱动器的DB2,Derby,使用Derby Client的Derby网络服务器,Microsoft SQL Server JDBC驱动程序和用户定义的JDBC提供程序。
2支持上面列出的所有功能以及Informix JDBC驱动程序和Sybase JDBC驱动程序。
3创建服务集成总线,但不创建与服务集成总线关联的消息传递引擎或数据存储。 该工具运行后,需要具有完整功能的JMS消息传递引擎来创建它们。
图1显示了配置迁移工具包的工作方式。
WebSphere Configuration Migration Toolkit是一个Eclipse插件,您可以免费下载。 要安装插件,请遵循标准插件安装说明 。
一旦安装了WebSphere Configuration Migration Toolkit,您应该在Eclipse窗口顶部看到一个名为Migration Tools的新菜单选项(图2)。 您必须具有Java或Java EE透视图才能访问此菜单选项。
为了运行WebSphere Configuration Migration Toolkit,您将需要现有Java EE服务器的配置文件的副本:
要启动该工具,请选择以下任一项:
对于WebLogic(图3),您将输入WebLogic config.xml文件。 这是WebLogic Server的主要XML配置文件。 根据WebLogic的版本,此文件可能是文件夹中的唯一文件,或者可能引用了相对于该文件夹的其他文件。 无论哪种情况,此文件都是Configuration Migration Toolkit在WebLogic中搜索资源的起点。
对于JBoss,您需要输入JBoss配置目录的位置,而不是单个XML配置文件。 该面板看起来与图3非常相似。JBoss没有单个XML配置文件引用所有其他配置文件。 相反,它是独立的XML配置文件的集合。 因此,您将需要输入JBoss配置的根文件夹,以便该工具可以搜索此目录下的所有文件。
对于WebSphere Application Server V7.0和更高版本,必须首先将配置从WebSphere Application Server提取到属性文件中。 为此,必须启动源应用程序服务器,然后从
wsadmin(.sh/.bat) –lang jython –c "AdminTask.extractConfigProperties(['-propertiesFileName my.props'])"
之后,将生成文件的位置输入到工具中; 该面板类似于图3。
选择了WebLogic config.xml,JBoss conf目录或WebSphere属性文件后,将要求您指定目标环境(图4)。
仅迁移到Liberty个人资料
对于向Liberty概要文件的迁移,没有其他选项(图4)。
仅迁移到WebSphere Application Server完整概要文件
迁移到WebSphere Full概要文件时,您可以选择资源的默认范围:
默认情况下,这些选项是Cell,Node和Server(图5)。
如果您拥有更复杂的环境,并且想要在特定范围内(例如在群集级别)指定资源,则可以选择高级选项。 然后,您可以提供Deployment Manager cell.xml文件的位置,该工具将确定该环境中的可用范围:
正确分配资源范围最终将在创建这些资源之后为您节省维护时间和成本。 如果不确定,通常来说,您将希望在集群范围内进行分配。 在这种情况下,同一群集内的所有应用程序都可以访问这些资源。 这使支持集群成员及其Java EE资源的动态配置更加容易。
资源范围是WebSphere Application Server中的一个强大概念,它可以防止在较低级别的范围内重复资源。 例如,如果一个节点中的多个服务器可以使用一个数据源,则可以将节点作用域分配给该数据源。 这将使数据源对该节点上的所有服务器可见。 以后,如果您需要更改数据源定义,则可以在节点级别进行一次更改,而不必在节点内的所有服务器上进行更改。 (参见相关主题 )
一些技巧:
您为默认范围选择的任何值都将分配给所有Java EE资源。 您稍后可以更改特定Java EE资源的范围,如下所述。
请注意,对于独立服务器(例如开发机或连续集成服务器),可以为“默认作用域”选择“ 单元”设置。 对于更复杂的测试和生产环境,您可能希望限制集群之间Java EE资源的可见性,以使一个集群中的应用程序无法访问另一集群中的应用程序资源。
选择选项后,点击下一步 。 该插件将从您在图3至5中指定的源环境中扫描配置文件,然后列出从这些源环境中找到的Java EE资源。 它在“ Review Resources Found”页面上以树形视图显示了需要迁移的Java EE资源(图7)。 此图还将显示资源及其分配的范围。
您会注意到每个资源旁边都有一个复选框。 您可以选择要迁移到目标环境的资源。 该工具将找到您的源环境中定义的所有Java EE资源。 我们发现很多时候,源环境中不再使用Java EE资源。 现在是浏览该工具发现的Java EE资源以确保它们都适用的好时机,这样您就可以避免在目标环境中定义不必要的资源。 如果您不知道应用程序使用了哪些资源,那么创建这些未使用的资源将不会损害已迁移的应用程序。 您也只需在目标环境中创建那些不必要的资源。
您还将注意到一些图标带有红色的X。这意味着存在一些未知的属性值,需要用户输入。 该值通常是“?” 这表示您必须提供一个值。 请注意,您必须提供一个值,或取消选择资源以继续。
对于每个资源,选项都是可修改的。 例如,图7显示了Authentication Alias的定义,该别名存储用户名和密码。 由于密码是加密的,因此Configuration Migration Toolkit无法提供该值,因此,如图所示,它允许您输入该值。 请注意,密码不会在server.xml中加密。 您可以选择输入假密码,然后通过Eclipse UI更改密码。 它具有加密server.xml中的密码的功能。 对于WebSphere Application Server完整概要文件,密码将采用明文形式,但是一旦执行了脚本,密码将被加密。
您可以更改JMS提供程序和JDBC提供程序的范围。 这些是包含其他资源的“顶级” Java EE资源。 因此,为这些“顶级”资源之一分配新作用域会将相同的作用域分配给它包含的所有资源。 例如,如果在服务器范围内具有JDBC提供程序,则在单元格范围内不能具有相应的JDBC数据源。 同样,如果更改JMS提供程序的范围,该范围将分配给所有连接到该JMS提供程序的JMS队列,主题等。 仅当选择WebSphere Application Server完整概要文件作为目标环境时,此选项才会出现。
对资源进行必要的更改后,点击下一步 。
在下一页上,您将可以查看Liberty概要文件的结果server.xml或WebSphere Full概要文件的Jython脚本。 在这里,您可以复制和粘贴文件上下文或将文件保存到文件系统。
验证Liberty server.xml的最简单方法是创建新的Liberty服务器,并将server.xml替换为新创建的server.xml。 然后,Eclipse将验证server.xml文件的内容是否符合XSD。 验证完成后,您可以通过在Eclipse Design视图中打开server.xml或手动检查server.xml来查看创建的资源。
该工具还支持创建Jython脚本,以用于将资源迁移到WebSphere Application Server完整概要文件。 要运行Jython脚本,请打开命令提示符,然后转到配置文件的bin目录。 如果在联合环境中(由Deployment Manager管理),请转到bin目录中的Deployment Manager。
运行命令:
如果启用了安全性,则可能还需要在命令中包括–username
选项。
如果运行脚本时出现任何错误,则可能需要对脚本进行一些更改。 例如,该脚本不会检查重复的Java EE资源,因此,如果已经创建了某些资源,或者如果您第二次运行该脚本,则可能会遇到一些错误。
WASX7017E: Exception received while running file "C:\jython.py";
exception information: com.ibm.websphere.management.exception.ConfigServiceException:
ADMG0032E: An existing JAASAuthData entry matches alias , so a JAASAuthData entry cannot be created for user ID .
注:服务器必须正在运行才能执行wsadmin命令。
Jython脚本成功完成后,您可以登录WebSphere Application Server完整概要文件管理控制台以查看新创建的资源。
该工具无法创建某些资源。 这可能是由于诸如从JBoss或WebLogic Server到Liberty概要文件的映射之类的因素不清楚而需要更多信息。 这也可能是该工具尚未实现的Java EE资源。
如果您需要有关该工具或其用法的任何其他帮助,则还可以向WebSphere Configuration Migration Forum发布问题。 该工具的开发者对此进行了审核。 (参见相关主题 )
本文介绍了一种用于将Java EE资源从WebLogic Server或JBoss Server迁移到Liberty概要文件的新工具。 该工具还可以将Java EE资源迁移到WebSphere Application Server完整概要文件。 这提供了在Liberty概要文件和WebSphere Application Server完整概要文件之间移动资源的路径。 如果您在桌面上使用Liberty配置文件,而将Full配置文件用于系统测试和生产,则可能需要这样做。
目前,该工具还支持将Java EE资源从WebLogic和JBoss迁移到Liberty或Full配置文件服务器。 我们正在研究扩展该工具,以从其他Java EE应用程序服务器迁移Java EE资源。 如果您对其他应用程序服务器感兴趣,请发布到论坛上,以便我们可以优先考虑增强功能。
另外,该工具支持Java EE应用程序最常使用的Java EE资源的迁移。 如果您遇到该工具不支持的其他资源,请将该新功能请求也发布到论坛。 该工具不会创建目标独立服务器或在其中部署应用程序的群集拓扑。 而是由开发人员创建目标独立服务器,或由管理员设置目标拓扑,完成后,他们将使用此工具创建这些应用程序在这些独立服务器或群集拓扑中运行所需的所有Java EE资源。
与第1部分中讨论的WebSphere Application Migration Toolkit结合使用时,该工具使您能够快速将Java EE应用程序及其关联的Java EE资源移至Liberty概要文件。 本系列文章的第3部分将提供一些示例和分步说明,用于将Java EE应用程序及其资源迁移到Liberty概要文件。
作者感谢Frank Golazeski的宝贵意见和帮助。
翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/1404_vines2/1404_vines2.html