Javaのサーバアプリにクライアント側からPOSTで文字列でXMLを送りつけたらXMLの解析時にパースエラーになって1時間ほどハマった時の話。 結論を先に言いますと、BOM付きのまま文字列としてサーバに送信してしまったのでJAXBでコケた。ということです。対策としてはファイルをBOMなしにしました。 当初Python内で文字列を書いてそれをJavaのサーバアプリ側にPOSTしていたときは問題が起こらなかったが、XMLファイルをあらかじめつくっておいてそれをPythonで読み込んでPOSTしたときにエラーになってしまった。 XMLのパースにつかっていたライブラリはJAXBというもの。 // クライアントからPOSTで受け取ったXML文字列をパース JAXBContext jaxbContext = JAXBContext.newInstance(Foo.class); Foo foo = (
![Javaを使ってBOM付きUTF-8でハマる - Gobble up pudding](https://cdn-ak-scissors.b.st-hatena.com/image/square/9a13d00189147768dde51ee342383991abdc84c4/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ff%2Ffa11enprince%2F20150730%2F20150730081143.jpg)