为Jersey 2.19创建共享库以与Weblogic 12.1.3一起使用
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一起使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nzbz什么意思 网络语nzbz什么意思
- 下一篇: 隽秀的读音 隽秀怎么读