Java 在Weblogic 12c(12.2.1.3)中使用提供的jax rs 2.0和Jersey 2.1x

Java 在Weblogic 12c(12.2.1.3)中使用提供的jax rs 2.0和Jersey 2.1x,java,rest,maven,weblogic12c,Java,Rest,Maven,Weblogic12c,我需要在我的WEB应用程序中实现rest服务调用。根据Oracle的说法,Weblogic是受支持的,不需要注册DeployJAX rs,所以我想使用这些服务器库。通过调用服务get,我创建了一个简单的类。我在项目中配置了依赖项,并将其部署在Weblogic上。但是,部署时会出现以下错误:java.lang.ClassCastException:无法将org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider强制转换为org.glas

我需要在我的WEB应用程序中实现rest服务调用。根据Oracle的说法,Weblogic是受支持的,不需要注册DeployJAX rs,所以我想使用这些服务器库。通过调用服务get,我创建了一个简单的类。我在项目中配置了依赖项,并将其部署在Weblogic上。但是,部署时会出现以下错误:java.lang.ClassCastException:无法将org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider强制转换为org.glassfish.jersey.server.spi.ComponentProvider

注意:使用下面的链接可以在服务器上部署jar,但我想使用Weblogic上的本机库。有人能帮我吗


在Weblogic 12.2.1.3上,您不需要执行您所指向的链接所描述的过程,我指的是下面的链接

这是因为该链接属于Oracle Weblogic 12.1.3,Weblogic 12.1.3.0和Weblogic 12.2.1.3之间存在一些差异

此外,对于Oracle Weblogic 12.2.1.3状态

注:

Jersey 2.x JAX-RS 2.0 RI支持在本文档中默认提供 WebLogic服务器的发布。不允许注册为共享库 需要更长的时间

这意味着,当涉及Weblogic 12.2.1.3时,Jersey库已经就位并准备好使用。因此,您的应用程序应该能够使用它们

但是,我认为服务器库在pom.xml文件中使用的库会遇到问题

此外,Oracle Weblogic 12.2.1.3还提供了2.22.4

我还在我的一台服务器中使用了wls cat,以了解哪个库正在加载org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider类,我在$ORACLE_HOME/ORACLE_common/modules/org.glassfish.jersey.ext.cdi.jersey-cdi1x.jar中找到了该库,这意味着它是由Weblogic加载的,如上述文档所述

此外,运行wls cat后,我可以看到:

org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider implements org.glassfish.jersey.server.spi.ComponentProvider
因此,cast不应该是一个问题,这意味着存在一个类加载问题,很可能是由应用程序中包含的库引起的

您可以在下图中看到在我的服务器上执行wls cat的结果

您可以使用wls cat查看JAR库正在加载冲突类的文件。在下面的帖子中,您将找到有关如何使用wls cat分析类加载问题的信息


在Weblogic 12.2.1.3上,您不需要执行您所指向的链接所描述的过程,我指的是下面的链接

这是因为该链接属于Oracle Weblogic 12.1.3,Weblogic 12.1.3.0和Weblogic 12.2.1.3之间存在一些差异

此外,对于Oracle Weblogic 12.2.1.3状态

注:

Jersey 2.x JAX-RS 2.0 RI支持在本文档中默认提供 WebLogic服务器的发布。不允许注册为共享库 需要更长的时间

这意味着,当涉及Weblogic 12.2.1.3时,Jersey库已经就位并准备好使用。因此,您的应用程序应该能够使用它们

但是,我认为服务器库在pom.xml文件中使用的库会遇到问题

此外,Oracle Weblogic 12.2.1.3还提供了2.22.4

我还在我的一台服务器中使用了wls cat,以了解哪个库正在加载org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider类,我在$ORACLE_HOME/ORACLE_common/modules/org.glassfish.jersey.ext.cdi.jersey-cdi1x.jar中找到了该库,这意味着它是由Weblogic加载的,如上述文档所述

此外,运行wls cat后,我可以看到:

org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider implements org.glassfish.jersey.server.spi.ComponentProvider
因此,cast不应该是一个问题,这意味着存在一个类加载问题,很可能是由应用程序中包含的库引起的

您可以在下图中看到在我的服务器上执行wls cat的结果

您可以使用wls cat查看JAR库正在加载冲突类的文件。在下面的帖子中,您将找到有关如何使用wls cat分析类加载问题的信息


图书馆之间确实存在冲突。我从pom.xml中删除了这些依赖项,它成功了。谢谢你的提示

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
        <scope>provided</scope>
    </dependency>
   
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>${jersey.version}</version>
        <scope>provided</scope>
    </dependency>

   <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
        <version>${jersey.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>2.4.1</version>
        <scope>provided</scope>
    </dependency>

图书馆之间确实存在冲突。我从pom.xml中删除了这些依赖项,它成功了。谢谢你的提示

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
        <scope>provided</scope>
    </dependency>
   
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>${jersey.version}</version>
        <scope>provided</scope>
    </dependency>

   <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
        <version>${jersey.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>2.4.1</version>
        <scope>provided</scope>
    </dependency>

嗨,因为你的提示,我设法解决了这个问题。非常感谢你的帮助。我在下面写下了我所做的:嗨,因为你的提示,我设法解决了这个问题。非常感谢你的帮助。我在下面写下了我所做的: