我需要在我的WEB应用程序中实现rest服务调用。根据Oracle的说法,Weblogic是受支持的,不需要注册(部署)jax-rs,所以我想使用这些服务器库。我通过调用服务(get)创建了一个简单的类。我在项目中配置了依赖项,并将其部署在Weblogic上。但是,在部署时,会出现以下错误:java。lang.ClassCastException:无法铸造组织。玻璃鱼。运动衫外部cdi1x。内部的CdiComponentProvider到组织。玻璃鱼。运动衫服务器spi。组件提供者
注意:它使用下面的这个链接工作(在服务器上部署jar)但我想使用Weblogic上的本地库。有人能帮我吗?
https://docs.oracle.com/middleware/1213/wls/RESTF/use-jersey20-ri.htm#RESTF297
Code example (Java)
String host = "https://swapi.dev/api/people/2/";
Client client = ClientBuilder.newBuilder().build();
WebTarget webTarget = client.target(host);
Builder builder = webTarget.request(MediaType.APPLICATION_JSON);
String result = builder.get(String.class);
pom.xml
<properties>
<primefaces.version>3.5.RC1</primefaces.version>
<jersey.version>2.21.1</jersey.version>
<jaxrs.version>2.0</jaxrs.version>
</properties>
<!-- JAX-RS -->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>${jaxrs.version}</version>
<scope>provided</scope>
</dependency>
<!-- Jersey 2.21.1 -->
<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.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</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>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
weblogic.xml
<wls:weblogic-version>12.2.1.3</wls:weblogic-version>
<wls:context-root>RecebimentoMercadoriaWEB</wls:context-root>
<wls:library-ref>
<wls:library-name>jsf</wls:library-name>
</wls:library-ref>
<wls:container-descriptor>
<wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>
<wls:session-descriptor>
<wls:cookie-name>CookieRecebimentoMercadoria</wls:cookie-name>
</wls:session-descriptor>
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>javax.faces.*</wls:package-name>
<wls:package-name>com.sun.faces.*</wls:package-name>
<wls:package-name>com.sun.facelets.*</wls:package-name>
<wls:package-name>com.bea.faces.*</wls:package-name>
</wls:prefer-application-packages>
<wls:prefer-application-resources>
<wls:resource-name>javax.faces.*</wls:resource-name>
<wls:resource-name>com.sun.faces.*</wls:resource-name>
<wls:resource-name>com.sun.facelets.*</wls:resource-name>
<wls:resource-name>com.bea.faces.*</wls:resource-name>
<wls:resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</wls:resource-name>
<wls:resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</wls:resource-name>
</wls:prefer-application-resources>
</wls:container-descriptor>
图书馆之间确实存在冲突。我从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>
在Weblogic 12.2.1.3上,您不需要执行您所指向的链接所描述的过程,我指的是下面的链接。
https://docs.oracle.com/middleware/1213/wls/RESTF/use-jersey20-ri.htm#RESTF297
这是因为该链接属于Oracle Weblogic 12.1.3,Weblogic 12.1.3.0和Weblogic 12.2.1.3之间存在一些差异。
此外,本文针对Oracle Weblogic 12.2.1.3进行了说明。
注:
球衣2。默认情况下,此版本的WebLogic Server提供了x(JAX-RS 2.0 RI)支持。不再需要注册为共享库。
这意味着,当涉及Weblogic 12.2.1.3时,Jersey库已经就位并准备就绪。因此,应用程序应该能够使用它们。
然而,我认为服务器库在pom中使用的库中遇到了问题。xml文件。
此外,Oracle Weblogic 12.2.1.3提供了jersey 2.22.4
我还在我的一个服务器中使用wls cat来了解哪个库正在加载类org。玻璃鱼。运动衫外部cdi1x。内部的CdiComponentProvider和我在$ORACLE\u HOME/ORACLE\u common/modules/org中找到了这个库。玻璃鱼。运动衫外部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分析类加载问题的信息。
https://blog.sysco.no/class/loader/AnalysingClassLoadingConflicts/
我正在使用下面的命令检查12C中Weblogic服务器的状态,该命令在10.x Weblogic中正常工作 java weblogic.admin-URL t3:/$IP:$端口getstate-username$username-password$password 我将类路径设置如下导出classpath=$WL_HOME/server/lib/weblogic.jar
The Ethereum eco-system provides many methods of interacting with the blockchain. In ethers.js we expose a Provider API that covers the breadth of operations, however often it is useful to inter-opera
我有这个问题,一个应用程序耳朵有这个错误,我是一个weblogic12c的新管理员,有人帮助我吗??? 这是一个标准安装Weblogic 12c
对于一个项目,我有这样类型的结构: 这很好,但前提是jar已经由上一个构建生成,这意味着我必须启动两次才能使其工作。 我认为问题在于,与常规依赖项(例如)不同,在不请求构建子项目的情况下计算文件树依赖项,并且在第一次构建时,没有向类路径添加jar文件。 我尝试了,但是没有成功,因为它是在求值之后执行的。 我不能将lib切换到Java插件,因为它是特定于Android的代码,而且我需要为其他项目构建
我是新手。我的应用程序是一个spring boot应用程序。消费者在协议代理中创建了协议。现在我正在尝试从providers端运行测试,我正在使用gradle插件来运行测试。我有几个问题: > 使用者发布 协议没有指定任何状态。这意味着我不需要在提供者端使用任何stateChangeUrl? 我想实现的是:当我说pactVerify 服务器启动,我的Spring Boot应用程序应该在localh