Не удалось создать экземпляр 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. Как только я удалил эту библиотеку, все работало отлично. Таким образом, очевидно, он использовал неправильные классы, чтобы попытаться выполнить эту операцию.
Не уверен, поможет ли это вам, но даже если нет, я думал, что кто-нибудь когда-нибудь может наткнуться на это и сочтет это полезным.