2012-10-26 42 views
5

上記のエラーが本番環境で発生していますが、プロセスはUATでうまくいきました。org.xml.sax.SAXParseException:3バイトUTF-8シーケンスの無効なバイト2

このエラーがjarファイルの読み込みに関連しているかどうかは疑問でした。私たちはwebmethodsを使用しており、上記のエラーはJavaサービスで発生しました。

+0

詳細をお知らせください。おそらく完全なスタックトレース、たぶんいくつかのコード、おそらくサンプルファイル?また、サンプルファイル内で無効な文字が検出された場所を特定できれば、最終的にUATにプロダクションファイルを伝播し、エラーが続くかどうかを確認してください。 – durron597

+0

ah komcraqueléturq 12cm 上記xml同じファイルがProductionで失敗している間にUATで解析されます... – abhijith501

+1

私はこの問題の正確な原因を発見しました。物事はロケールとデフォルト文字がプロダクションに存在し、受け入れが異なります..私はこのString deEncoding = "" + Charset.defaultCharset(); String locale = "" + Locale.getDefault();ロケールを見つけるには..エンコーディングとロケールは異なります..私は、UTF-8の値をbyteArray = inputInXML.getBytes( "UTF-8")でハードコーディングしています。結果は成功 – abhijith501

答えて

0

ロードするxmlファイルが正しくエンコードされていません。本番環境ファイルを見てください。少なくとも1つはUTF-8ではありません。

+0

返信ありがとう..私はすべてのファイルをチェックして、すべてがUTF-8でエンコードされている...私はjarファイルに関する疑いがあります。この例外はjarsに関連していますか? – abhijith501

+0

jarはプロダクションとテストで同じですか? 2つのenvの違いを見てください。 jarファイルには、実行時に解析されるXMLファイルが含まれている場合があります。 – Aubin

+0

castor-xml-schema-1.2.jarこのjarファイルの使用方法は? – abhijith501

6

最も可能性の高いシナリオは、ファイルがISO-8859-1でエンコードされ、拡張ASCII(0x80〜0xffの間の文字)が含まれていることです。パーサーはUTF-8を想定しており、拡張文字の1つが3バイトシーケンスの開始として解釈されていますが、その位置で有効なバイトは続きません。

+1

私はこの問題の正確な原因を発見しました。物事はロケールとデフォルトの文字がプロダクションにあり、受け入れは異なります。このString deEncoding = "" + Charset.defaultCharset()を使用しました。 ; String locale = "" + Locale.getDefault();ロケールを見つけるには..エンコーディングとロケールは異なります..私は、UTF-8の値をbyteArray = inputInXML.getBytes( "UTF-8")でハードコーディングしています。結果は成功です – abhijith501

関連する問題