信息化 频道

WebSphere迁移 从JBossv4.x迁移WASCEv2

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

  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使用本机代码,例如,使用C或C++编写的代码。使用本机代码会在迁移到不同操作系统时引发问题。例如,一个运行在Windows上的应用程序可能使用.DLL文件,而当您迁移到Linux平台时,同一个应用程序则会使用.SO文件。

  JBoss Extensions

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

0
相关文章