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 版本。