產生靜態分析 IRX 檔時發生錯誤或警告
症狀
產生 IRX 檔案時,您可能會接收到錯誤或警告,或是產生 IRX 檔案的作業可能會失敗。當 IRX 檔案產生失敗時,所產生檔案的名稱會附加 _failed(例如,my_irx_file_failed.irx)。發生這種情況時,有多種選項可針對 IRX 檔案產生進行疑難排解。
解決
- 使用配置檔進行 IRX 檔案產生的疑難排解
如果您在未使用配置檔的情況下產生 IRX 檔案,而檔案產生未完成時(或者已完成但發生錯誤),則 Static Analyzer 指令行公用程式 會產生暫時配置檔,供您於後續掃描中使用。此檔案與配置檔範本類似,其中包含有關您目標之已知資訊的
Targets
元素。不過,此檔案也包含可供您修改的<TargetSettings>
元素,您可以新增資訊,讓 指令行公用程式 能夠產生完整的 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
,以得知編譯錯誤。