请考虑以下问题。 在尝试在GlassFish 4.1.1(Java EE 7完整平台)上部署我的简单REST应用程序时,我收到下面指定的错误。我的应用程序包含glassfish-web.xml,用于配置类加载委派,以便应用程序使用它自己的jersey版本2.22
我得到的错误如下:
[2016-03-28T13:30:58.035-0400] [glassfish 4.1] [SEVERE] [] [javax.enterprise.web] [tid:_ThreadID = 43 _ThreadName = admin-listener(3)] [timeMillis: 1459186258035] [levelValue:1000] [[ WebModule [/ device-backend] Servlet / device-backend抛出了load()异常 java.lang.ClassCastException:无法将org.glassfish.jersey.ext.cdi1x.transaction.internal.TransactionalExceptionInterceptorProvider强制转换为org.glassfish.jersey.server.spi.ComponentProvider 在java.lang.Class.cast(Class.java:3186)
来自pom的Jersey依赖关系如下:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.22</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<!-- if your container implements Servlet API older than 3.0, use "jersey-container-servlet-core" -->
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.22</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.bundles</groupId>
<artifactId>jaxrs-ri</artifactId>
<version>2.22</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.19</version>
</dependency>
没有glassfish-web.xml,一切都很好。