为 Jersey 2.19 创建共享库以与 Weblogic 12.1.3 一起使用

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

Weblogic 服务器带有一个共享库,因此您可以部署 JAX-RS 2.0 应用程序;但仅限于 Jersey 版本 2.5.1,更改此设置的说明并不完全 明显或直接 。我最近加入了 Oracle 的一个新团队,我做的第一件事就是着眼于升级依赖库。现在我已经和泽西队谈过了,他们不支持这个组合;但在下一个版本的 Weblogic 发布之前,它可能足以让您摆脱束缚。

我将使用 Maven 执行此操作,因为这意味着所有打包和下载都已为您完成。项目的基本结构如下:


 |-pom.xml
|-src
| |-main
| | |-java
| | |-resources
| | | |-META-INF
| | | | |-MANIFEST.MF
| | |-webapp
| | | |-WEB-INF
| | | | |-web.xml
| | | | |-weblogic.xml


我刚刚使用 Netbeans 生成了一个 vanilla Maven 项目,然后添加了我需要的 Jersey 依赖项,如果有决心的话,这个文件可能会被减少一点。但它对我来说效果很好:


 |-pom.xml
|-src
| |-main
| | |-java
| | |-resources
| | | |-META-INF
| | | | |-MANIFEST.MF
| | |-webapp
| | | |-WEB-INF
| | | | |-web.xml
| | | | |-weblogic.xml

MANIFEST.MF 文件中下一个最重要的文件,它会在您尝试部署 .war 时告诉 Weblogic 这是一个库并且还包含它提供的版本:


 |-pom.xml
|-src
| |-main
| | |-java
| | |-resources
| | | |-META-INF
| | | | |-MANIFEST.MF
| | |-webapp
| | | |-WEB-INF
| | | | |-web.xml
| | | | |-weblogic.xml


最后,您必须包含一个 weblogic.xml 文件来告诉服务器您需要从这里而不是服务器类加载器获取一些类。我从 12.1.3 随附的 2.5.1 共享库附带的文件中获得了此基础,然后添加了更多行以考虑代码的移动方式。根据您的代码在做什么,您可能需要添加更多。



 |-pom.xml
|-src
| |-main
| | |-java
| | |-resources
| | | |-META-INF
| | | | |-MANIFEST.MF
| | |-webapp
| | | |-WEB-INF
| | | | |-web.xml
| | | | |-weblogic.xml

现在所有这些需要的只是一个快速的 mvn install ,在目标目录中将有一个很好的完整共享库,称为 JerseyLibrary-2.9.war,您可以以正常方式部署它。当然,请记住更新将依赖于此的 .war 的库条目,以在其中包含正确的版本,以便它确实选择 2.5.1 版本。


相关文章