2016-09-15 4 views
1

Я получаю NoClassDefFoundError для класса, который существует в rt.jar Oracle, но, похоже, не существует в rt.jar WebSphere.WebSphere NoClassDefFoundError для Oracle Класс Java

java.lang.NoClassDefFoundError: com/sun/org/apache/xpath/internal/NodeSet 

Мое понимание WebSphere является то, что родные классы Java должны существовать в установке Java WebSphere, но это не кажется так.

Странно, что это работает в одной среде и не работает в другом, но ни один из файлов rt.jar не имеет класса NodeSet. Я бы подумал, что это тоже не сработает, так как у обоих есть переменная среды JAVA_HOME WebSphere, установленная в java-папку WebSphere.

Есть ли у кого-нибудь идеи, что может происходить здесь? Использует ли WebSphere только путь java в переменной среды WebSphere? Или он также использует переменные среды сервера?

+1

Знаете ли вы, что пытается загрузить это? Ваш собственный код или какая-либо другая библиотека в вашем приложении? Может быть, кто-то может помочь найти альтернативу. Может быть, трассировка стека поможет, если вы не уверены. –

+0

Да, это мой собственный код. Я думаю, что я мог бы переписать его для работы с JDK IBM, но тогда я не знаю, нужно ли ему также следить за тем, чтобы он работал с JDK Oracle, и я знаю, что он работал в прошлом, поэтому мне кажется, что в какой-то момент я думаю он как-то читал из JDK Oracle из WebSphere. – Corey

+0

Вы используете традиционную WebSphere или WebSphere Liberty? Традиционный WebSphere будет работать только с IBM JDK, который поставляется с ним. Для WebSphere Liberty вы можете использовать любой JDK, который вам нужен. –

ответ

1

В WebSphere (особенно традиционный WebSphere) используется IBM JDK.

IBM JDK и Oracle JDK отличаются в терминах поставщиков XML. Информация об использовании XML с IBM JDK здесь (обратите внимание, что это для JDK 8, возможно, придется вернуться немного отсюда):

https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.win.80.doc/user/xml/using_xml.html

0

Такого рода проблема обычно происходит, когда у вас есть несвежие банки в путь к классам или bootclasspath. В неудавшейся среде исключение было выбрано из класса, который можно было загрузить из устаревшей банки, и он ожидает реализации Oracle XML.

Смежные вопросы