当我尝试完全根据此处显示的示例上传文件时,我收到了错误 示例
错误是
为 servlet com.testapp.rest.JaxRsActivator 分配异常:java.lang.RuntimeException:找不到类 org.jboss.resteasy.core.AsynchronousDispatcher 的公共构造函数
这意味着什么?
如果部署到 JBoss 7.x,您需要将 resteasy 依赖项的范围更改为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>
当我遇到此错误并尝试上述解决方案但对我不起作用时,我正在使用wildfly 10resteasy-jaxrs
部署我的应用程序,最后我不得不使用 maven 排除项排除 jar
<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>
像一个魅力
还有一件事,确保你检查resteasy
$ 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
也许值得一提的是,RESTeasy 文档中有关于如何升级 JBoss 中包含的 RESTeasy 的信息,如上所述,如果您尝试使用其他版本,可能会引起一些头痛。
简单地说,您可以将此依赖项添加到您的 pom.xml 文件中并对其进行测试。
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.2.1.GA</version>
<scope>provided</scope>
</dependency>