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を読み込まないことによる影響が不明
パース実行時の動作が不明