AppScan® Source 允许您从 Apache Tomcat 和 WebSphere® Application Server Liberty 概要文件导入 Java™ 应用程序。您可以按照本主题中的说明,通过扩展应用程序服务器导入框架来从其他应用程序服务器导入 Java™ 应用程序。
关于此任务
应用程序服务器导入框架包含不通过 PDF 提供的随附 API 文档。如果您是通过 Adobe™ PDF 访问本帮助主题,那么只能通过以下方式来访问此 API 文档:启动 AppScan® Source for Analysis 联机帮助并浏览至,或者在 http://help.hcl-software.com/appscan/Source/10.1.0/index.html 查找该帮助部分。
要扩展应用程序服务器导入框架,请完成以下步骤。这些步骤将让您执行以下操作:
过程
- 为 AppScan® Source 应用程序服务器导入框架所必需的从属项配置 Eclipse 集成开发环境:
- 在 Eclipse 中,从主菜单选择。
- 在“首选项”对话框中,展开插件开发,然后选择目标平台。
- 在“目标平台”首选项页面中,单击添加以创建新目标定义。
- 在“目标定义”向导页中,选择 无:从一个空的目标定义开始,然后按下一步。
- 在“目标内容”向导页面中的名称字段内输入目标的名称,然后单击添加以添加 AppScan® Source 安装目录(请参阅安装和用户数据文件位置)。
- 可选: 选择显示位置内容以验证插件是否可用。
- 单击完成。
- 在“目标平台”首选项页面中,选择刚才创建的目标平台并按应用。然后按确定。
- 在 Eclipse 中创建新插件:
- 从主菜单选择以打开“新建项目”向导。
- 在“选择向导”页面中,选择插件项目,然后按下一步。
- 在“插件项目”页面中的项目名称字段内输入插件的名称(本帮助主题将使用
com.example.appserverimporter
来作为示例),然后按下一步。
- 在“内容”页面中,取消选择生成激活器(用于控制插件生命周期的 Java 类),然后按完成。
- 在刚才创建的插件中,设置必要的从属项:
- 打开 META-INF\MANIFEST.MF,然后选择依赖项选项卡。
- 在编辑器的所需插件部分中:
- 单击添加,然后添加 com.ouncelabs.core.appserverimporter 和 org.eclipse.core.runtime。
- 选择刚刚添加的 com.ouncelabs.core.appserverimporter 插件并单击属性。在插件属性中,除去最小版本和最大版本字段中的任何条目,然后单击确定。
- 对 org.eclipse.core.runtime 插件重复上述步骤。
- 从主菜单选择以保存已对编辑器所作的所有更改。
- 下一步将让您定义对应用程序服务器的扩展。对于该步骤,您将继续在 META-INF\MANIFEST.MF 编辑器中工作。
- 按照以下步骤来为应用程序服务器定义导入器扩展:
- 选择扩展选项卡,然后单击添加以添加
com.ouncelabs.appserver
,然后再从主菜单选择。
- 选择 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>
- 从主菜单选择来保存已对 plugin.xml 做出的更改。
- 创建导入器类(在本示例中为
com.example.appserverimporter.MyAppServerImporter
)以定义新应用程序服务器导入器的行为。此类必须扩展 BaseAppServerImporter
BaseAppServerImporter
,框架对 AppServerImporter
AppServerImporter
接口的基本实现方式。在该类中:
- 实现
AppServerImporter.importAppServer(String)
。这供框架用来确定要导入的 Java™ EE 项目及其所在位置。通常情况下,仅需要每个 Java™ EE 项目的名称和路径。如果创建了 EAR 项目,那么在 AppScan® Source 用户界面中选择项目时,所包含的 Java™ EE 项目将被隐藏。在此情况下,将导入整个 EAR。否则,将列出所有项目以供逐个进行选择。 在适用情况下,高度建议使用以下方法:
BaseAppServerImporter.processDropInsFolder(AppServerProfile, File)
BaseAppServerImporter.processEARFile(AppServerProfile, File)
- 实现
AppServerImporter.isValidLocation(String)
。这用于在已给定安装目录的情况下检测服务器类型。
- 可选: 覆盖
BaseAppServerImporter.getJSPCompilerType()
。此方法将返回要用于 AppScan® Source 项目的 JSP 编译器。如果未执行此操作,那么基本实施会返回空值,并且将使用产品缺省 JSP 编译器。
- 可选: 作为高级选项,可以定制 JSP 编译以使用预编译的 JSP 编译器(JSP 编译将在导入之前或期间进行):
- 覆盖
BaseAppServerImporter.getJSPCompilerType()
以返回 JSPCompilerType.PRECOMPILED
。
- 覆盖
BaseAppServerImporter.getJSPCompilerType()
以调用 JMX、Java™ API 和外部脚本来编译 JSP 文件,或者只是将类文件复制到 AppScan® Source 项目的登台目录。使用 Application.getStagingDirectory(Project)
Application.getStagingDirectory(Project)
获取登台目录。
- 覆盖
BaseAppServerImporter.createJSPCompilerSupport()
以返回 JSPCompilerSupport
JSPCompilerSupport
的定制扩展。这用于保持 JSP 文件与所生成类文件之间的映射,并用于在 JSP 编译后进行验证。
- 覆盖
BaseAppServerImporter.createClasspathProvider()
以返回 AppServerClasspathProvider
AppServerClasspathProvider
的定制实现方式。编译对服务器库具有依赖性的任何 Java™ 或 JSP 文件时均需要该类。此类必须扩展 BaseAppServerClasspathProvider
BaseAppServerClasspathProvider
。请注意,调用 getClasspathEntries()
时,BaseAppServerClasspathProvider.installDirectory
将已经设置为应用程序服务器的安装目录。
- 按以下步骤来测试插件:
- 从主菜单选择运行(或者如果要以调试方式进行测试,那么选择)。
- 创建新 Eclipse 应用程序配置。
- 转至此新配置的主选项卡。在要运行的程序部分中,选择运行产品,然后将其设置为运行 com.ouncelabs.osa.rcp.product。
- 转至参数选项卡。在工作目录部分中,选择其他,然后在字段中输入 AppScan® Source 数据目录(请参阅 安装和用户数据文件位置)。
- 在插件选项卡中,将启动方式选项设置为仅以下所选插件。展开工作空间并确保选择已创建的插件,然后在目标平台下取消选择以下插件:
- 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
- 单击“运行配置”对话框中的运行之前,请转至 AppScan® Source 安装目录并运行 bin\OunceScanner.exe。
- 返回到“运行配置”对话框并单击运行以启动 AppScan® Source for Analysis 并测试插件。
- 按以下步骤来为 AppScan® Source for Analysis 启用插件:
- 右键单击项目并选择导出。
- 在“导出”向导的“选择”页面中,展开插件开发,选择可部署的插件和片段,然后单击下一步。
- 在“可部署的插件和片段”页面中:
- 转至目标选项卡,并通过浏览至机器上的临时目录来设置目录。
- 转至选项选项卡,并选择将插件打包为单独 JAR 归档和限定符替换。
- 单击完成。
- 找到已用作插件导出目标的临时目录,然后打开其 plugins\ 文件夹。在此文件夹中,找到已创建的 .jar 文件并将其复制到 <install_dir>\dropins(其中 <install_dir> 是 AppScan® Source 的安装位置)。
注:
- 如果 \dropins 目录不存在,那么您将需要手动予以创建。
- 变更 AppScan® Source 安装目录可能需要管理特权。
- 找到 <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/ 位置以逗号 (,
) 进行分隔。
- 启动 AppScan® Source for Analysis。
- 从主菜单选择 ,然后单击安装详细信息。选择插件选项卡并确保其中列出了您的插件。
- 关闭“安装详细信息”对话框并开始使用应用程序服务器导入框架。