2012-05-29 2 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. Я полагаю, что можно использовать только одну копию без каких-либо проблем?

EDIT

Я обнаружил, что эти библиотеки могут быть развернуты в виде модулей в Glassfish с помощью команды:

[[email protected] bin]# sh asadmin add-library /opt/primefaces.jar Но, например, в простом WAR пакете, что мне нужно изменить для того, чтобы использовать модули Glassfish? Пакет WAR должен быть настроен на использование внешних библиотек, я полагаю?

ответ

1

Я не думаю, что проблема в вашем военном файле, но вы можете проверить файл MANIFEST. Если заголовки Import-Package верны, вы ничего не можете сделать с войны Если это так, должен быть способ убедить Glassfish сделать модуль видимым для webapp (я не эксперт по Glassfish, извините).

В противном случае исправьте заголовки Import-Package (вы можете сделать что вручную на данный момент)

1

Вы посмотрите на этот раздел GlassFish документации может, называется модулей и приложений Версии:

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

"приложений и модуль управления версиями позволяет использовать несколько версий одного и того же приложения, чтобы существовать в Домен GlassFish Server, который упрощает задачи обновления и отката. В любой момент времени на сервере может быть разрешено не более одной версии приложения или модуля. Версии предоставляют расширения для инструментов для развертывания, просмотра и управления несколькими версиями модулей и приложений, в том числе Администрация С onsole и связанные с развертыванием подкоманды asadmin. Различные версии одного и того же модуля или приложения могут иметь один и тот же корень контекста или имя JNDI. Использование версий является необязательным. «

+0

Я видел сообщение, но я не понимаю, как его использовать. Проблема в том, что при развертывании модуля он не отображается в пакетах WAR. Мне нужно сделать дополнительную конфигурацию в WAR пакет, но я точно не знаю, как это сделать , – user1285928