SAXParseException已本地化

时间:2013-09-26 12:00:41

标签: java exception

我有一个解析XML的服务,并使用SAXParseExceptionexception.getMessage()返回相同的内容)来生成包含解析器错误列表(exception.getLocalizedMessage())的报告,这些错误可供人类阅读和理解。如何使用英语以外的语言本地化此异常消息?

2 个答案:

答案 0 :(得分:3)

我找到了解决方案。首先需要从XMLSchemaMessages.properties获取Apache Xerces。我从http://xerces.apache.org/下载了Xerces-J-src.2.11.0.tar.gz,解压缩并从位置获取此文件:...\src\org\apache\xerces\impl\msg

现在将此文件重命名为 XMLSchemaMessages_pl.properties 或本地化您需要并放置在类路径中。我在Maven中有项目,所以我将此文件放入:src\main\resources\com\sun\org\apache\xerces\internal\impl\msg

就是这样。在异常消息中将显示对此文件的更改。

答案 1 :(得分:2)

根据java doc,您需要扩展SAXParseException并覆盖getLocalizedMessage,默认实现返回与getMessage相同的内容。

编辑: 您可以为每种语言提供单独的属性文件,每种语言都可以codelocal message。 根据{{​​1}}和部分SAXParseException举起locale时,会返回相应的code

message