Использование Xalan в плагине Eclipse

Я сталкиваюсь с проблемами с использованием xalan в плагине Eclipse.
Когда я пытаюсь создать фабричный экземпляр:

TransformerFactory tFactory = TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl", null);

Я получаю ошибку:

javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
...

У меня есть следующие библиотеки в плагине classpath: xml-apis.jar, xercesImpl.jar, serializer.jar, xalan.jar

Я даже не могу создать экземпляр класса с помощью:

c = Class.forName("org.apache.xalan.processor.TransformerFactoryImpl");
Object o = c.newInstance();

Возвращает ClassNotFoundException

Но я могу создавать экземпляры других классов из того же jar-файла и без проблем запускать тот же код вне Eclipse.

Любая идея?

Редактировать: экземпляр класса TransformerFactory (скажем, "class1") является частью внешней библиотеки, добавленной в путь к классу плагина, тогда как xalan.jar также находится в пути к классу плагина. Если я переместить этот "class1" в плагин, он найдет поставщика и работает нормально.

1 ответ

Решение

Хотя я видел эту проблему однажды, но я не очень уверен, как я решил ее.

Если вы используете JDK 1.5 или выше, попробуйте удалить xml-apis.jar, Это было необходимо для Java 1.4 для поддержки XML.

Обновление 1


Хорошо. Из вашего вопроса я сделал вывод, что вы пишете плагин Eclipse. Если да, то вы добавили вышеупомянутые банки, используя plugin.xml->Runtime->classpath? Если нет, попробуйте сделать это. Плагин Eclipse рассматривает только свои записи времени выполнения->classpath

Обновление 2


Для меня это все еще кажется проблемой разрешения пути к классам. Хотя трудно сказать, почему это происходит. Для проверки вы также можете проверить, изменив порядок включенных банок в plugin.xml->Runtime->classpath,

Надеюсь, это поможет.

PS: Поскольку вы работаете над разработкой плагинов Eclipse, я бы посоветовал вам пройтись по этой статье Eclipse - рассказу о двух виртуальных машинах и множестве загрузчиков классов.

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