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生成了一个香草Maven项目,然后添加了我所需的Jersey依赖项,很可能可以确定地将此文件削减一些。 但这对我来说足够好:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>JerseyLibrary</artifactId><version>2.9</version><packaging>war</packaging><name>Jersey Library</name><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><jersey.version>2.19</jersey.version></properties><dependencies><dependency><groupId>org.glassfish.jersey.containers</groupId><artifactId>jersey-container-servlet</artifactId><version>${jersey.version}</version><scope>compile</scope></dependency><dependency><groupId>org.glassfish.jersey.core</groupId><artifactId>jersey-client</artifactId><version>${jersey.version}</version></dependency><dependency><groupId>org.glassfish.jersey.media</groupId><artifactId>jersey-media-multipart</artifactId><version>${jersey.version}</version><type>jar</type></dependency><dependency><groupId>org.glassfish.jersey.media</groupId><artifactId>jersey-media-moxy</artifactId><version>${jersey.version}</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.7</source><target>1.7</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.3</version><configuration><failOnMissingWebXml>false</failOnMissingWebXml><archive><manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>2.6</version><executions><execution><phase>validate</phase><goals><goal>copy</goal></goals><configuration><outputDirectory>${endorsed.dir}</outputDirectory><silent>true</silent><artifactItems><artifactItem><groupId>javax</groupId><artifactId>javaee-endorsed-api</artifactId><version>7.0</version><type>jar</type></artifactItem></artifactItems></configuration></execution></executions></plugin></plugins></build></project>

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

Specification-Title: Weblogic JAX-RS 2.0
Specification-Version: 2.0
Implementation-Title: Weblogic JAX-RS 2.0 Reference Implementation
Implementation-Version: 2.19
Extension-Name: jax-rs

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

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-appxmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd"><container-descriptor><prefer-application-packages><!-- apis --><package-name>javax.ws.rs.*</package-name><!-- guava --><package-name>com.google.common.*</package-name><!-- jersey providers --><package-name>com.sun.jersey.*</package-name><package-name>org.glassfish.jersey.*</package-name><package-name>jersey.repackaged.*</package-name><!-- hk2 --><package-name>org.jvnet.hk2.*</package-name><package-name>org.jvnet.hk2.tiger_types.*</package-name><package-name>org.glassfish.hk2.*</package-name><package-name>javassist.*</package-name><!-- media providers --><package-name>org.eclipse.persistence.jaxb.rs.*</package-name><package-name>org.codehaus.jackson.jaxrs.*</package-name><!-- wls --><package-name>weblogic.jaxrs.api.client.*</package-name><package-name>weblogic.jaxrs.internal.api.client.*</package-name><package-name>weblogic.jaxrs.dispatch.*</package-name><package-name>weblogic.jaxrs.monitoring.util.*</package-name></prefer-application-packages></container-descriptor>
</weblogic-web-app>

现在,所有这些都需要快速mvn install并且在目标目录中将有一个很好的完整共享库,名为JerseyLibrary-2.9.war,您可以按常规方式进行部署。 当然,请记住要更新.war的库条目,该库依赖于此条目以具有正确的版本,因此它确实会选择2.5.1版本。

翻译自: https://www.javacodegeeks.com/2015/08/creating-a-shared-library-for-jersey-2-19-to-use-with-weblogic-12-1-3.html

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

  1. Linux 共享库简介(怎样创建共享库)

    前言 0x1 什么是共享库 0x2 共享库在文件系统中的位置 0x3 使用 ldconfig 命令 0x4 使用非标准库位置 0x5 示例(如何创建一个共享库) 前言 一个库文件由多个不同的目标文件填 ...

  2. gcc创建静态库和共享库

    静态库和动态(共享)库 静态库:编译程序在编译使用库提供的功能代码的程序时将代码复制到该程序然后编译成可执行程序,这种库成为静态库 共享库:共享库比静态库的处理方式更加灵活,因而其产生的可执行文件更小 ...

  3. linux 下共享库创建及使用

    1.创建共享库 [xpan@localhost 2.5.3]$ ls libhello.c  libhello.h  usehello.c [xpan@localhost 2.5.3]$ gcc -f ...

  4. Qt之创建并使用共享库

    简述 在 Windows 中,有动态链接库(DLL - Dynamic Link Library):在 Linux 中,有共享库(Shared Library),它们是相同的! 由于平台和编译器的差异 ...

  5. Qt文档阅读笔记-共享库的创建与调用

    使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...

  6. C 语言编程 — 静态库、动态库和共享库

    目录 文章目录 目录 文章目录 程序函数库 静态链接 创建静态库文件 动态链接 创建共享库文件 共享库文件的名字 共享库文件的存储路径 LD_LIBRARY_PATH 环境变量 ldconfig 指令 ...

  7. 共享库中的位置无关代码(PIC)

    原作者:Eli Bendersky http://eli.thegreenplace.net/2011/11/03/position-independent-code-pic-in-shared-li ...

  8. 程序员的自我修养--链接、装载与库笔记:Linux共享库的组织

    共享库(Shared Library)概念:其实从文件结构上来讲,共享库和共享对象没什么区别,Linux下的共享库就是普通的ELF共享对象.由于共享对象可以被各个程序之间共享,所以它也就成为了库的很好 ...

  9. UNIX再学习 -- 静态库与共享库

    一.库 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.由于Windows和linux本质不同,因此二者库的二进制是不兼容的.库有两种:静态库(.a..lib)和共享库也称动态库 ...

最新文章

  1. 「深度学习知识体系总结(2021版)」开放下载了!
  2. 《评人工智能如何走向新阶段》后记(再续16)
  3. mongodb,redis,mysql 简要对比
  4. 2021-08-25路演的反馈
  5. Ibatis.net 属性字段中使用 IN 查询条件
  6. 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(基础知识以及简单示例)...
  7. 重启报错_Win10蓝屏,提示收集错误信息,反复重启报错
  8. 小型网络的组建及排错
  9. springboot中获得app_Spring Boot 应用程序启动流程分析
  10. 笔记:Java 性能优化权威指南 第6章 Java 应用性能分析技巧
  11. CentOS 7 搭建 Ceph 集群(nautilus 版本)
  12. Execution failed for task :Test:lintVitalRelease/Lint found fatal errors while assembling a release
  13. 目标规划第四章计算机求解,单纯形算法与目标规划地应用研究.doc
  14. 新浪微博OAuth认证简介
  15. 计算机技术在风景园林中的应用和选择,现代信息技术在风景园林中的应用
  16. 常用图像处理库都有哪些?
  17. 07 Halcon 点云平面角测量
  18. 使用python脚本抢购天猫和淘宝商品,0秒下单
  19. 吴恩达机器学习(十二)—— 机器学习系统的设计
  20. 003 C语言 输出名言

热门文章

  1. C++描述杭电OJ 2016.数据的交换输出 ||
  2. 回忆四班的那些事儿~
  3. 详细整理分层开发步骤!
  4. 2016蓝桥杯省赛---java---B---6(方格填数)
  5. 二分查找(一次查找多个相同的值)
  6. html画等边三角形,前台面试:使用CSS画一个等边三角形
  7. 指令寻址方式与数据寻址方式
  8. redis创建集群报错can‘t connect to node 192.168.163.203
  9. Integer和Int的比较,谈谈拆卸和装箱
  10. lineseparator_首选System.lineSeparator()以用Java编写系统相关的行分隔符字符串