[英]Configure external libraries as Glassfish modules
我有幾個使用外部庫的OSGI捆綁包和WAR包:
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>4.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
<version>4.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>osgi-cdi-api</artifactId>
<version>3.1-b41</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
可以將這些庫復制到Glassfish服務器的/ modules目錄中,而不是將庫構建到每個OSGI捆綁包和WAR軟件包中。 我想可以只使用一個副本而不會出現任何問題?
編輯
我發現可以使用以下命令在Glassfish中將這些庫部署為模塊:
[root@Testserver bin]# sh asadmin add-library /opt/primefaces.jar
但是,例如,在一個簡單的WAR包中,為了使用Glassfish模塊,我需要修改什么? 我必須將WAR軟件包配置為使用外部庫嗎?
您可以查看Glassfish文檔的這一部分,稱為模塊和應用程序版本 :
http://docs.oracle.com/cd/E26576_01/doc.312/e24929/overview.htm#gkhhv
“ 應用程序和模塊版本控制允許在GlassFish Server域中存在同一應用程序的多個版本,從而簡化了升級和回滾任務。在給定的時間,最多可以在服務器上啟用一個應用程序或模塊的版本。版本控制提供了對用於部署,查看和管理模塊和應用程序的多個版本的工具,包括管理控制台和與部署相關的asadmin子命令,同一模塊或應用程序的不同版本可以具有相同的上下文根或JNDI名稱,版本控制是可選的。 ”
我認為問題不在您的war文件中,但請確保您可以檢查清單文件。 如果Import-Package標頭正確,則war文件無法執行任何操作。 在這種情況下,必須有一種方法可以說服Glassfish使某個模塊對Web應用程序可見(我不是Glassfish專家,對不起)。
否則,請修復Import-Package標頭(您現在可以手動執行此操作)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.