2010-02-21 5 views
2

У меня очень неприятная проблема.Развертывание войны в стеклянную планету не загружено

Поэтому я хочу включить 2 jar-файла в мое веб-приложение java (.war-файл) - для загрузки на версию 2-го стекла.

Файлы:

axis2-adb-1.4.1.jar и wstx-asl-3.2.4.jar.

В моем консольном приложении я просто добавляю их в свой путь к классам, и они работают нормально. Однако, когда я развернуть это GlassFish (банки помещают в WEB-INF/lib/) Я получаю это:

java.lang.reflect.InvocationTargetException

org.apache.axis2.AxisFault: org.apache.axis2 .databinding.ADBException: не удается вызвать метод getTypeObject в классе расширения картографа

Я заметил, что в моем консольном приложении, когда я удалил wstx-asl-3.2.4.jar от моего пути к классам, я хотел бы получить это точный такая же ошибка. Поэтому я чувствую, что эта банка не загружена каким-то образом.

Затем я перешел к переупаковке банок вместе. Я сделал эту большую ось2 + wstx.jar и загрузил ее в проект моей стеклянной рыбы. Такая же ошибка ... Это определенно загружается, так как без бакса axis2 он раньше бросал класс axis2 класса def def.

Итак, моя теория заключается в том, что стеклянная рыба лениво загружает банки, так как ни барабан с осью 2, ни моя основная программа не требуют этого мусора wstx, он загружен неправильно. Но я, вероятно, совершенно не прав.

Я действительно надеюсь, что кто-то может помочь мне с этим.

ответ

4

Начиная с GF v2 b49, Woodstox интегрирован как часть Glassfish вместе с sjsxp, который остается парсером по умолчанию. Чтобы включить Woodstox установить следующие свойства системы на стороне сервера:

-Djavax.xml.stream.XMLEventFactory=com.ctc.wstx.stax.WstxEventFactory 
-Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory 
-Djavax.xml.stream.XMLOutputFactory=com.ctc.wstx.stax.WstxOutputFactory 

Более подробную информацию в Woodstox in Glassfish v2.

При использовании встроенного Woodstox не отвечает вашим требованиям, то, возможно, попытаться активировать «класс загрузки функции делегирования» в файле sun-web.xml путем установки путем установки delegate="false" в class-loader элемента. Что-то вроде этого:

<sun-web-app> 
    <class-loader delegate="false"/> 
</sun-web-app> 
+0

святое дерьмо это работает. Ты удивительный. Я больше рассмотрю настройки этих системных свойств :) – Andy

0

Я думаю, что есть один и тот же класс в обеих баночках. И как-то класс без метода getTypeObject загружается как первый. Если есть шанс изменить порядок загруженных банок в classpath, это поможет.

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