扩展应用程序服务器导入框架

AppScan® 允许您从 Apache Tomcat 和 WebSphere® Application Server Liberty 概要文件导入 Java 应用程序。您可以按照本主题中的说明,通过扩展应用程序服务器导入框架来从其他应用程序服务器导入 Java 应用程序。

关于此任务

应用程序服务器导入框架包含不通过 PDF 提供的随附 API 文档。如果您是通过 Adobe PDF 访问本帮助主题,那么只能通过以下方式来访问此 API 文档:启动 AppScan® Source for Analysis 联机帮助并浏览至扩展产品功能 > 扩展应用程序服务器导入框架 > 应用程序服务器导入扩展 API 类和方法,或者在 http://help.hcltechsw.com/appscan/Source/10.1.0/index.html 查找该帮助部分。

要扩展应用程序服务器导入框架,请完成以下步骤。这些步骤将让您执行以下操作:

过程

  1. AppScan® 应用程序服务器导入框架所必需的从属项配置 Eclipse 集成开发环境:
    1. 在 Eclipse 中,从主菜单选择窗口 > 首选项
    2. 在“首选项”对话框中,展开插件开发,然后选择目标平台
    3. 在“目标平台”首选项页面中,单击添加以创建新目标定义。
    4. 在“目标定义”向导页中,选择 无:从一个空的目标定义开始,然后按下一步
    5. 在“目标内容”向导页面中的名称字段内输入目标的名称,然后单击添加以添加 AppScan® 安装目录(请参阅安装和用户数据文件位置)。
    6. 可选: 选择显示位置内容以验证插件是否可用。
    7. 单击完成
    8. 在“目标平台”首选项页面中,选择刚才创建的目标平台并按应用。然后按确定
  2. 在 Eclipse 中创建新插件:
    1. 从主菜单选择文件 > 新建项目以打开“新建项目”向导。
    2. 在“选择向导”页面中,选择插件项目,然后按下一步
    3. 在“插件项目”页面中的项目名称字段内输入插件的名称(本帮助主题将使用 com.example.appserverimporter 来作为示例),然后按下一步
    4. 在“内容”页面中,取消选择生成激活器(用于控制插件生命周期的 Java 类),然后按完成
  3. 在刚才创建的插件中,设置必要的从属项:
    1. 打开 META-INF\MANIFEST.MF,然后选择依赖项选项卡。
    2. 在编辑器的所需插件部分中:
      • 单击添加,然后添加 com.ouncelabs.core.appserverimporterorg.eclipse.core.runtime
      • 选择刚刚添加的 com.ouncelabs.core.appserverimporter 插件并单击属性。在插件属性中,除去最小版本最大版本字段中的任何条目,然后单击确定
      • org.eclipse.core.runtime 插件重复上述步骤。
    3. 从主菜单选择文件 > 保存以保存已对编辑器所作的所有更改。
    4. 下一步将让您定义对应用程序服务器的扩展。对于该步骤,您将继续在 META-INF\MANIFEST.MF 编辑器中工作。
  4. 按照以下步骤来为应用程序服务器定义导入器扩展:
    1. 选择扩展选项卡,然后单击添加以添加 com.ouncelabs.appserver,然后再从主菜单选择文件 > 保存
    2. 选择 plugin.xml 选项卡。其内容应看起来类似于:
      <?xml version="1.0" encoding="UTF-8"?>
      <?eclipse version="3.4"?>
      <plugin>
        <extension
          point="com.ouncelabs.appserver">
        </extension>
      </plugin>

      通过编辑如下内容来完成扩展定义。例如:

      <?xml version="1.0" encoding="UTF-8"?>
      <?eclipse version="3.4"?>
      <plugin>
        <extension
          point="com.ouncelabs.appserver">
          <importer
           class="com.example.appserverimporter.MyAppServerImporter"
           id="com.example.appserverimporter.myappserver"
           name="My App Server">
         </importer>
       </extension>
      </plugin>
    3. 从主菜单选择文件 > 保存来保存已对 plugin.xml 做出的更改。
  5. 创建导入器类(在本示例中为 com.example.appserverimporter.MyAppServerImporter)以定义新应用程序服务器导入器的行为。此类必须扩展 BaseAppServerImporterBaseAppServerImporter,框架对 AppServerImporterAppServerImporter 接口的基本实现方式。在该类中:
    1. 实现 AppServerImporter.importAppServer(String)。这供框架用来确定要导入的 Java EE 项目及其所在位置。通常情况下,仅需要每个 Java EE 项目的名称和路径。如果创建了 EAR 项目,那么在 AppScan® 用户界面中选择项目时,所包含的 Java EE 项目将被隐藏。在此情况下,将导入整个 EAR。否则,将列出所有项目以供逐个进行选择。

      在适用情况下,高度建议使用以下方法:

      • BaseAppServerImporter.processDropInsFolder(AppServerProfile, File)
      • BaseAppServerImporter.processEARFile(AppServerProfile, File)
    2. 实现 AppServerImporter.isValidLocation(String)。这用于在已给定安装目录的情况下检测服务器类型。
    3. 可选: 覆盖 BaseAppServerImporter.getJSPCompilerType()。此方法将返回要用于 AppScan® 项目的 JSP 编译器。如果未执行此操作,那么基本实施会返回空值,并且将使用产品缺省 JSP 编译器。
  6. 可选: 作为高级选项,可以定制 JSP 编译以使用预编译的 JSP 编译器(JSP 编译将在导入之前或期间进行):
    1. 覆盖 BaseAppServerImporter.getJSPCompilerType() 以返回 JSPCompilerType.PRECOMPILED
    2. 覆盖 BaseAppServerImporter.getJSPCompilerType() 以调用 JMX、Java API 和外部脚本来编译 JSP 文件,或者只是将类文件复制到 AppScan® 项目的登台目录。使用 Application.getStagingDirectory(Project)Application.getStagingDirectory(Project) 获取登台目录。
    3. 覆盖 BaseAppServerImporter.createJSPCompilerSupport() 以返回 JSPCompilerSupportJSPCompilerSupport 的定制扩展。这用于保持 JSP 文件与所生成类文件之间的映射,并用于在 JSP 编译后进行验证。
    4. 覆盖 BaseAppServerImporter.createClasspathProvider() 以返回 AppServerClasspathProviderAppServerClasspathProvider 的定制实现方式。编译对服务器库具有依赖性的任何 Java 或 JSP 文件时均需要该类。此类必须扩展 BaseAppServerClasspathProviderBaseAppServerClasspathProvider。请注意,调用 getClasspathEntries() 时,BaseAppServerClasspathProvider.installDirectory 将已经设置为应用程序服务器的安装目录。
  7. 按以下步骤来测试插件:
    1. 从主菜单选择运行运行 > 配置(或者如果要以调试方式进行测试,那么选择运行 > 调试)。
    2. 创建新 Eclipse 应用程序配置。
      • 转至此新配置的选项卡。在要运行的程序部分中,选择运行产品,然后将其设置为运行 com.ouncelabs.osa.rcp.product
      • 转至参数选项卡。在工作目录部分中,选择其他,然后在字段中输入 AppScan® 数据目录(请参阅 安装和用户数据文件位置)。
      • 插件选项卡中,将启动方式选项设置为仅以下所选插件。展开工作空间并确保选择已创建的插件,然后在目标平台下取消选择以下插件:
        • com.ouncelabs.plugin.base
        • com.ouncelabs.plugin.base
        • com.ouncelabs.plugin.base.nl
        • com.ouncelabs.plugin.base.nl
        • com.ouncelabs.plugin.enhanced
        • com.ouncelabs.plugin.enhanced
        • com.ouncelabs.plugin.enhanced.nl
        • com.ouncelabs.plugin.enhanced.nl
    3. 单击“运行配置”对话框中的运行之前,请转至 AppScan® 安装目录并运行 bin\OunceScanner.exe
    4. 返回到“运行配置”对话框并单击运行以启动 AppScan® Source for Analysis 并测试插件。
  8. 按以下步骤来为 AppScan® Source for Analysis 启用插件:
    1. 右键单击项目并选择导出
    2. 在“导出”向导的“选择”页面中,展开插件开发,选择可部署的插件和片段,然后单击下一步
    3. 在“可部署的插件和片段”页面中:
      • 转至目标选项卡,并通过浏览至机器上的临时目录来设置目录
      • 转至选项选项卡,并选择将插件打包为单独 JAR 归档限定符替换
      • 单击完成
    4. 找到已用作插件导出目标的临时目录,然后打开其 plugins\ 文件夹。在此文件夹中,找到已创建的 .jar 文件并将其复制到 <install_dir>\dropins(其中 <install_dir>AppScan® 的安装位置
      注:
      • 如果 \dropins 目录不存在,那么您将需要手动予以创建。
      • 变更 AppScan® 安装目录可能需要管理特权。
    5. 找到 <install_dir>\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info。创建此文件的备份副本,然后编辑此文件并将以下内容添加到其末尾:
      <my_plugin>,<my_plugin_version>,
      dropins/<my_plugin>_<my_plugin_version>.jar,4,false
      <my_plugin>,<my_plugin_version>,dropins/<my_plugin>_<my_plugin_version>.jar,4,false

      其中:

      • <my_plugin> 是已创建的插件的名称。
      • <my_plugin_version> 是已创建的插件的版本号。
      注: 在此条目的开头,<my_plugin><my_plugin_version>dropins/ 位置以逗号 (,) 进行分隔。
    6. 启动 AppScan® Source for Analysis
    7. 从主菜单选择帮助 > 关于AppScan® Source for Analysis ,然后单击安装详细信息。选择插件选项卡并确保其中列出了您的插件。
    8. 关闭“安装详细信息”对话框并开始使用应用程序服务器导入框架。