Мое приложение выдает ошибку xpathfactory в AIX, которая возникает в этой строке кода. XPathFactory xpf = XPathFactory.newInstance();. Но оно отлично работает в Windows. Из данных в Интернете и через код Системное свойство сначала проверяется, если не найдено, то jaxp.properties. appnode.tra.Но в AIX это не работает. Как распечатать журналы jaxp, и я хочу, чтобы он работал без добавления внешних банок в путь к классам? (В jaxp.properties я установил свойство как javax.xml.xpath. XPathFactory: http://java.sun.com/jaxp/xpath/dom=com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl)
XPathFactory#newInstance() не удалось создать XPathFactory для объектной модели по умолчанию: http://java.sun.com/jaxp/xpath/dom
comment
Пожалуйста, отредактируйте свой пост и добавьте немного форматирования. Также укажите версию Java, которую вы используете в AIX, и укажите точное сообщение об ошибке, которое вы получите.
- person Lorinczy Zsigmond   schedule 18.03.2020
Ответы (1)
Я предполагаю, что вы используете IBM JDK, и его реализация XPath по умолчанию отличается от com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl
, что совершенно законно.
В JDK9 есть метод XPathFactory.newDefaultInstance()
, поэтому вам больше не нужно знать имя фабрики по умолчанию.
В качестве альтернативы попробуйте посмотреть, что загружается, если вы не устанавливаете никаких системных свойств и ничего не имеете в пути к классам.
person
Michael Kay
schedule
17.03.2020
Да, мы используем IBM JDK. У удаленной системы есть jdk 8, и мы не можем обновить ее. Как я могу узнать, что загружается? Я запускал отдельное приложение Java как в Windows, так и в aix. Класс .jaxp.xpathfactoryimpl загружается из xml.jar, тогда как мы удалили xml.jar из нашего домашнего приложения bw java.
- person prathyusha magam; 18.03.2020
Возможно, вам следует попытаться создать экземпляр
org.apache.xpath.jaxp.xpathfactoryimpl
, если он доступен, или com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl
в противном случае. Не думайте, что вам нужно использовать механизм JAXP factory.newInstance()
— вы можете создавать экземпляры этих классов напрямую, если это более удобно.
- person Michael Kay; 18.03.2020