產生靜態分析 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,以得知編譯錯誤。