Ошибка AsynchronousDispatcher
Я получаю сообщение об ошибке при попытке загрузить файл, основанный именно на примере, показанном здесь.
Пример
Ошибка
Выделить исключение для сервлета com.testapp.rest.JaxRsActivator: java.lang.RuntimeException: не удается найти публичный конструктор для класса org.jboss.resteasy.core.AsynchronousDispatcher
Что это значит?
Ответы
Ответ 1
При развертывании на JBoss 7.x вам необходимо изменить область ваших зависимостей на время ожидания до provided
. Это связано с тем, что эти конкретные библиотеки уже включены в JBoss в качестве модулей:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.2.1.GA</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>2.2.0.GA</version>
<scope>provided</scope>
</dependency>
Ответ 2
Как шарм
Еще одна вещь, убедитесь, что вы проверяете релаксацию
$ mvn dependency:tree | grep "resteasy"
[INFO] \- org.jboss.resteasy:resteasy-jaxrs:jar:3.0.10.Final:provided
[INFO] +- org.jboss.resteasy:jaxrs-api:jar:3.0.10.Final:provided
Ответ 3
Возможно, стоит упомянуть, что в документации RESTeasy есть информация о том, как обновить RESTeasy, включенную в JBoss, что, как упоминалось выше, может вызвать некоторые головная боль, если вы попытаетесь использовать другую версию.
Ответ 4
Я использовал wildfly 10 для развертывания моего приложения, когда получил эту ошибку, и попробовал вышеупомянутые решения и не работал у меня, и, наконец, мне пришлось исключить jar resteasy-jaxrs с использованием исключений maven
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.0.19.Final</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<artifactId>resteasy-jaxrs</artifactId>
<groupId>org.jboss.resteasy</groupId>
</exclusion>
</exclusions>
</dependency>