LINUX.ORG.RU

Multipart и wildfire

 , resteasy, wildfire


0

2

Добрых суток.

Пытаюсь использовать resteasy-multipart-provider (из org.jboss.resteasy.). Но как только в зависимостях я его подключаю

compile group: 'org.jboss.resteasy', name: 'resteasy-multipart-provider', version: '3.6.2.Final'
rest перестаёт инициализвароться и я наблюдаю ошибку 404, а в логах wildfire (WildFire 14.0.1) исчезает
Deploying javax.ws.rs.core.Application: class RestApplication
Т.е. пока эта зависимость закомментирована, всё работает и rest отвечает. Я так полагаю, что resteasy подтягивает что-то ещё, что ломает текущий rest. Добавление jboss-deployment-structure.xml с таким содержимым не помогает
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <!--deployment>
        <exclude-subsystems>
            <subsystem name="resteasy" />
        </exclude-subsystems>
        <exclusions>
            <module name="javaee.api" />
            <module name="javax.ws.rs.api"/>
            <module name="org.jboss.resteasy.resteasy-multipart-provider" />
        </exclusions>
        <local-last value="true" />
    </deployment-->
</jboss-deployment-structure>

Как задействовать resteasy-multipart-provider и не сломать rest?

Заранее спасибо.

★★★★★

Последнее исправление: cyclon (всего исправлений: 1)

Всем спасибо, вопрос решился.

П.С. если кому интересно, нужно было указывать compileOnly вместо compile.

cyclon ★★★★★
() автор топика

Хочу начать ответ с вопросов:

* что такое WildFire? Может быть Wildfly? * Для чего появилась необходимость использовать версию библиотеки 3.6.2? В Wildfly из коробки идёт 3.6.1, не поленился и проверил:

[jurikolo@t2013188 modules]$ find ~/Downloads/wildfly-14.0.1.Final -name "*multipart*"
/home/jurikolo/Downloads/wildfly-14.0.1.Final/modules/system/layers/base/org/jboss/resteasy/resteasy-multipart-provider
/home/jurikolo/Downloads/wildfly-14.0.1.Final/modules/system/layers/base/org/jboss/resteasy/resteasy-multipart-provider/main/resteasy-multipart-provider-3.6.1.Final.jar

Полагаю, решение вашей проблемы: в pom.xml прописать следующее:

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-multipart-provider</artifactId>
    <scope>provided</scope>
</dependency>

Irben ★★★
()
Ответ на: комментарий от Irben

Да, WildFly, ошибся. Спасибо.

А быть может поможете с такой ошибкой, хочется использовать bean-discovery-mode=«all», сейчас стоит annotated. Когда ставлю all, то выходит такое:

10:32:53,192 DEBUG [org.jboss.resteasy.cdi.i18n] (ServerService Thread Pool -- 100) RESTEASY010520: Beans found for class RestApplication : [Managed Bean [class RestApplication] with qualifiers [@Any @Default]]
10:32:53,195 DEBUG [org.jboss.weld.Bean] (ServerService Thread Pool -- 100) Catching: java.lang.RuntimeException: java.lang.ClassFormatError: Illegal class name "/RestApplication$Proxy$_$$_WeldClientProxy" in class file /RestApplication$Proxy$_$$_WeldClientProxy

RestApplication - класс rest приложения, для javax.ws.rs.core.Application.

Для annotated такой ошибки нет.

Спасибо.

cyclon ★★★★★
() автор топика
Последнее исправление: cyclon (всего исправлений: 1)
Ответ на: комментарий от cyclon

А быть может поможете с такой ошибкой

Увы, помочь не могу. Сам уже не разработчик, лишь с «окружением» работаю.

Irben ★★★
()
Ответ на: комментарий от Irben

Если интересно, то проблема была в том, что в build.gradle было

sourceCompatibility = 1.8
targetCompatibility = 1.8
в то время как wildfly запускался 10-ой. Поменял JAVA_HOME на 1.8 проблема исчезла.

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.