私が現在取り組んでいる Web アプリケーションは、サーバーに保存されている xsd に対して、ユーザーが指定した xml ファイルを検証します。問題は、xml が検証に失敗した場合、エラー メッセージがロシア語で表示されることです。パーサーが動作しています - エラーメッセージが表示されますが、英語のみです
String parserClass = "org.apache.xerces.parsers.SAXParser";
String validationFeature = "http://xml.org/sax/features/validation";
String schemaFeature = "http://apache.org/xml/features/validation/schema";
XMLReader reader = null;
reader = XMLReaderFactory.createXMLReader(parserClass);
reader.setFeature(validationFeature,true);
reader.setFeature(schemaFeature,true);
BatchContentHandler contentHandler = new BatchContentHandler(reader);
reader.setContentHandler(contentHandler);
BatchErrorHandler errorHandler = new BatchErrorHandler(reader);
reader.setErrorHandler(errorHandler);
reader.setFeature("http://apache.org/xml/features/continue-after-fatal-error", true);
reader.parse(new InputSource(new ByteArrayInputStream(streamedXML)));
問題なく動作します。エラー メッセージは英語です。この投稿Xerces 2.11.0 (Java) の Locale specific messagesと、この投稿https://www.java.net//node/699069を読んで、これらの行を追加しました
Locale l = new Locale("ru", "RU");
reader.setProperty("http://apache.org/xml/properties/locale", l);
XMLSchemaMessages_RU.properties ファイルも jar に追加しました。これで、NULL ポインター例外が発生します。アイデアやヒントはありますか?前もって感謝します!