生成静态分析 IRX 文件时发生错误或警告
症状
生成 IRX 文件时,可能会收到错误或警告,或 IRX 文件生成可能会失败。IRX 文件生成失败时,会在生成的文件的名称中附加 _failed(例如,my_irx_file_failed.irx)。发生这种情况时,有多种选项可用于对 IRX 文件生成进行故障诊断。
解决方法
- 使用配置文件对 IRX 文件生成进行故障诊断
如果在没有使用配置文件的情况下生成 IRX 文件,且文件生成未完成(或者如果已完成但有错误),则 Static Analyzer Command Line Utility 将生成临时配置文件,以供您在后续扫描中使用。此文件类似于配置文件模板,其中包含一个
Targets
元素以及有关目标的已知信息。但是,此文件还将包含<TargetSettings>
元素,可通过添加允许 Command Line Utility 生成完整 IRX 文件的信息来进行修改。此文件将命名为appscan-config.xml
,并保存到当前目录中。这意味着此文件将自动用于下一次扫描。例如,假定生成 IRX 文件所针对的目标中包含找不到的外部依赖关系,则您可能会收到类似以下内容的消息:
C:\myTargetDirectory>appscan prepare An IRX file was created, but it may be incomplete. C:\myTargetDirectory\myTarget.jar requires the following packages: org.apache.jasper.* An appscan-config.xml file was created in: C:\myTargetDirectory\appscan-config.xml Please update the file and rerun the command.
生成的
appscan-config.xml
文件如下所示:<Configuration> <Targets> <Target outputs-only="true" path="C:\myTargetDirectory"/> </Targets> <Settings/> <TargetSettings> <Target path="C:\myTargetDirectory\myTarget.jar"/> <!--Please add the path of the following dependencies to the attribute "additional_classpath" below, separated by semi-colon. org.apache.jasper.*--> <CustomBuildInfo additional_classpath=""/> </Target> </TargetSettings> </Configuration>
要解决此问题,请更新
<CustomBuildInfo additional_classpath=""/>
以在类路径上包含 org.apache.jasper.* 类,保存appscan-config.xml
文件,然后重新运行appscan prepare
(Windows™) 或appscan.sh prepare
(Linux™ 和 macOS) 命令。指定 JAR 文件的路径时,支持标准 Java™ 类路径语法(例如,支持通配符)。如果在已使用配置文件的情况下遇到类似问题,您会收到指示这些问题的消息。使用此消息来更新现有配置文件,然后重新运行命令。
配置文件在 使用 CLI 配置 IRX 文件生成 中进行了描述。
- 以调试方式生成 IRX 文件
如果要从 CLI 生成 IRX 文件,可发出带有调试选项的
appscan prepare
(Windows™) 或appscan.sh prepare
(Linux™ 和 macOS) 命令。这会生成更多日志文件。 - 与 IRX 文件生成关联的日志文件
要查看错误或警告,可以查阅同时生成的日志文件。日志文件将保存到 .zip 存档文件中。缺省情况下,会将此文件保存到用于保存 IRX 的相同位置,或者可通过使用
appscan prepare
(Windows™) 或appscan.sh prepare
(Linux™ 和 macOS) 命令的-l
选项来指定其他位置。.zip 文件的名称基于生成的 IRX 文件的名称。 - JSP 编译问题
如果存在 JSP 编译问题,请检查
<file_name>_logs.zip
中的compile.log
是否存在编译错误。