2012-05-29 25 views
4

我有幾個OSGI束和WAR包,其使用外部庫:配置外部庫作爲Glassfish的模塊

 <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> 

代替構建庫到每個OSGi包和WAR包是有可能這些庫複製到/ Glassfish服務器的modules目錄。我想可以只使用一個副本而沒有任何問題?

編輯

我發現,這些庫可以被部署爲模塊在GlassFish中使用以下命令:

[[email protected] bin]# sh asadmin add-library /opt/primefaces.jar 但隨後例如在一個簡單的WAR包我需要什麼,以便修改到使用Glassfish模塊? WAR包必須配置爲使用外部庫我想?

回答

1

我不認爲問題出現在你的war文件中,但要確保你能檢查MANIFEST文件。如果Import-Package頭文件是正確的,那麼在戰爭中你無法做任何事情如果是這種情況,必須有辦法說服Glassfish使一個模塊對webapp可見(我不是Glassfish專家,對不起)。

否則,修復Import-Package標題(你可以做現在手動)

1

你可以看看GlassFish的文檔的這一部分,稱爲模塊和應用程序版本

http://docs.oracle.com/cd/E26576_01/doc.312/e24929/overview.htm#gkhhv

應用程序和模塊的版本允許相同的應用程序在一個存在的多個版本GlassFish服務器域,它簡化了升級和回滾任務,任何時候都可以在服務器上啓用一個版本的應用程序或模塊版本控制提供了用於部署,查看和管理多個版本的模塊和應用程序的工具的擴展,包括政府C鞋墊和與部署相關的asadmin子命令。相同模塊或應用程序的不同版本可以具有相同的上下文根或JNDI名稱。使用版本是可選的。

+0

我看到帖子,但我不明白我該如何使用它。問題是,當我部署模塊時,WAR包是不可見的,我需要在WAR中進行額外的配置包,但我不知道如何做到這一點。 – user1285928