Используйте библиотеку docx4j с jboss 7

1

Я пытаюсь создать pptx, используя библиотеку pptx4j. Я мог бы создать pptx успешно. Затем я применил код к огромному проекту, который запускается на сервере jboss 7. Проект успешно развертывается на сервере. Но когда я пытаюсь запустить приложение, оно дает следующее исключение.

java.lang.NoClassDefFoundError: com/sun/xml/internal/bind/marshaller/NamespacePrefixMapper

Это исключение происходит для следующей строки в коде.

PresentationMLPackage presentationMLPackage = PresentationMLPackage
                .createPackage(); 

Есть специальный способ запуска библиотеки docx4j на сервере jboss 7. Я искал больше в Интернете, но я не мог найти решение.

  • 0
    Вы действительно "искали в интернете"? На этом форуме есть различные вопросы, касающиеся JBoss и docx4j. Посмотрите, помогает ли эта тема: stackoverflow.com/questions/16204635/… Для этого также существует форум с инструкциями по настройке JBoss 7: docx4java.org/forums/jboss-f29/jboss-7-config-t1678.html
  • 0
    Я перешел по ссылке на stackoverflow.com/questions/16204635/. Но там только одно решение. Необходимо использовать версию Jboss EAP 6.2. Я хочу работать с версией jboss 7. docx4java.org/forums/jboss-f29/jboss-7-config-t1678.html ... В этой ссылке также нет решения. Есть только о проблеме.
Показать ещё 2 комментария
Теги:
jboss7.x
docx4j

1 ответ

5
Лучший ответ

JBoss AS 7 представила концепцию модулей (пачек), которые резко изменили загрузку классов. Вы должны ознакомиться с этой концепцией:

https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7

jboss-deployment-structure.xml - это описательный дескриптор развертывания JBoss, который можно использовать для управления загрузкой классов мелкозернистым способом. Он должен быть размещен в развертывании верхнего уровня, в META-INF (или WEB-INF для веб-развертывания). Он может выполнять следующие действия:

  • Запретить добавление автоматических зависимостей
  • Добавить дополнительные зависимости
  • Определение дополнительных модулей
  • Изменение поведения EAR для развертывания изолированного класса
  • Добавление дополнительных корней ресурсов в модуль

Когда вы получаете NoClassDefFoundError в JBoss AS 7, вы можете поспорить, что у вас где-то отсутствует какая-то зависимость. Что касается вашего конкретного случая, вам нужно добавить зависимость от модуля com.sun.xml.bind.

docx4j даже имеет страницу для этого:

http://www.docx4java.org/forums/jboss-f29/jboss-7-config-t1678.html

чтобы docx4j работал в вашей WAR, вам просто нужно включить WEB-INF/jboss-deployment-structure.xml, содержащий:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
    <deployment>
        <dependencies>
            <module name="com.sun.xml.bind" />
       </dependencies>
    </deployment>
</jboss-deployment-structure>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню