javaでxml parse実行時にjava.net.ConnectionException connection refusedエラーが発生する

事象:

java11にてDocumentBuilderを用いてxmlファイルをparseしようとした際に、

java.net.ConnectionException connection refusedというエラーが発生される。

 

原因:

DocumentBuilderはparse実行時にリモートにあるDTDというXML文書の形式を定義したファイルを読み取りに行く。今回の実行環境では、リモートファイルへのアクセスを遮断されていたため、事象が発生していた。

 

解決策:

以下を参考にし、DocumentBuilderの実行時にリモートDTDを読みに行かないようにインスタンスの定義を変更することで、解決することが出来る。ただし、リモートDTDを読み取ることが出来ないため、parse時に別の問題が発生する可能性がある。

 

https://qiita.com/yoshi389111/items/3d0da72b1f2ccd947052

 

振り返り:

なぜリモートDTDへのアクセスが遮断されていたか不明

リモートDTDへのアクセスが必要な理由が不明

リモートDTDの役割が不明

パース実行時にリモートDTDを読み込まないことによる影響が不明

パース実行時の動作が不明