Не удалось создать экземпляр XMLStreamWriterFactory: неподдерживаемое свойство isRepairingNamespaces

В нашем приложении мы встречаемся с очень редкими исключениями времени выполнения, которые приводят к сбою наших процессоров сообщений (которые являются автономными процессами Java, работающими на Java 8). Во время этого исключения процессоры обычно пытаются выполнить вызов веб-службы.

Исключением являются

java.lang.Error: Failed to create new instance of com.sun.xml.internal.ws.api.streaming.XMLStreamWriterFactory$1
  at com.sun.xml.internal.ws.api.streaming.ContextClassloaderLocal.createNewInstance(ContextClassloaderLocal.java:63)
  ..
Caused by: java.lang.IllegalArgumentException: Unable to access unsupported property javax.xml.stream.isRepairingNamespaces
  at weblogic.xml.stax.ConfigurationContextBase.check(ConfigurationContextBase.java:90)

Странно то, что все приложение работает без ошибок в 99,9% случаев: вышеупомянутые исключения случаются довольно редко (примерно каждые пару дней). После сбоя процессоры автоматически перезагружаются и снова работают совершенно нормально, пока такое же исключение не появится снова после, казалось бы, случайного интервала.

До сих пор мы не могли соотнести это с каким-либо неправильным поведением со стороны JVM или хоста, на котором запущено приложение.

Есть ли у кого-нибудь указатели на то, почему такой unsupported property javax.xml.stream.isRepairingNamespaces исключение может появиться спорадически?

Бежали jdk1.8.0_66 на Red Hat 4.8.5-4, Интерфейсы веб-сервисов создаются с использованием JAX-WS,


Редактировать:
Я не могу поделиться classpath (много внутренней информации, извините). Хотя у нас есть полный клиент Weblogic: wlfullclient-12.1.3.jar, Он определяет фабрику XML через ServiceLoader

META-INF/services/javax.xml.stream.XMLOutputFactory --> weblogic.xml.jaxp.RegistryXMLOutputFactory

В то время как xml-apis-1.4.01.jar (также в classpath) содержит javax/xml/stream/XMLOutputFactory.class (относится к исключению, выданному в ConfigurationContextBase).

Может ли это быть частью проблемы?

2 ответа

Вы должны изменить порядок пути к классам. На первом этапе все axis2 jars а затем укажите weblogic.jar в пути класса. Надеюсь, это решит вашу проблему.

Я столкнулся с этой проблемой вчера после внесения некоторых существенных изменений в мой код. Этот конкретный пост является единственной информацией, которую я могу найти, прибегая к помощи этой конкретной ошибки - всегда плохой знак. После долгих часов бесполезной глубокой отладки, сравнивая исходную рабочую версию кода с новой нерабочей версией, я решил начать откатывать изменения своего кода, чтобы увидеть, где и когда возникла проблема. Что ж, после отказа почти от каждого изменения кода проблема все еще продолжалась. Я наконец понял, что эта проблема, возможно, была внешней по отношению к коду. Оказывается, что в какой-то момент я добавил постороннюю библиотеку: wstx.jar в мою директорию lib. Как только я удалил эту библиотеку, все работало отлично. Таким образом, очевидно, он использовал неправильные классы, чтобы попытаться выполнить эту операцию.

Не уверен, поможет ли это вам, но даже если нет, я думал, что кто-нибудь когда-нибудь может наткнуться на это и сочтет это полезным.

Другие вопросы по тегам