2013-04-22 6 views
2

Я пытаюсь использовать плагин Maven Cargo для развертывания набора пакетов OSGI и гибридного приложения .war (Веб-приложение с Restservice, которое использует OSGI) также называется пакетом веб-приложений (или WAB) (например, см. https://glassfish.java.net/public/GF-OSGi-Features.pdf).Как использовать плагин Maven Cargo для развертывания пакета веб-приложений (WAB, OSGI + JavaEE) в Glassfish 3.x

Развертывание пакетов OSGI в Glassfish 3.1.x отлично работает, но я не нашел способ развернуть пакет веб-приложений.

Это упаковка «война», но я должен развернуть ее как комплект OSGI. Итак, как я могу сказать это плагин Cargo?

Конфигурация Maven Я пытался использовать:

<plugin> 
    <groupId>org.codehaus.cargo</groupId> 
    <artifactId>cargo-maven2-plugin</artifactId> 
    <version>1.4.0</version> 
    <configuration> 
     <wait>false</wait> 

     <container> 
     <containerId>glassfish3x</containerId> 
     <home>${glassfish.home}</home> 
     <type>installed</type> 
     </container> 
     <configuration> 
     <type>existing</type> 
     <home>${glassfish.home}</home> 
     <properties> 
      <cargo.hostname>localhost</cargo.hostname> 
      <cargo.rmi.port>4848</cargo.rmi.port> 
      <cargo.domain.name>${glassfish.domain}</cargo.domain.name> 
     </properties> 
     </configuration> 
     <deployables> 
     <deployable> 
      <groupId>com.acme.rest</groupId> 
      <artifactId>rest-api</artifactId> 
      <type>bundle</type> 
     </deployable> 
     </deployables> 
    </configuration> 
    </plugin> 

Но следующая ошибка появляется:

[ERROR] Не удалось выполнить цель org.codehaus.cargo: грузопассажирские Maven2-плагин: 1,4 .0: redeploy (default-cli) в проекте rest-api: Artifact [com.acme.rest:rest-api:bundle] не зависит от проекта. -> [Помощь 1] org.apache.maven.lifecycle.LifecycleExecutionException: Не удалось выполнить цель org.codehaus.cargo: load-maven2-plugin: 1.4.0: redeploy (default-cli) в проекте rest-api: Артефакт [com.acme.rest:rest-api:bundle] не зависит от проекта.

Развертывание в качестве типа компонента «веб» работает, но я не могу использовать пучки OSGi ...

ли кто-нибудь есть опыт работы с развертывания веб-приложений Bundle и OSGi расслоения?

ответ

1

Я не знаю, о грузовом плагином, но развернуть WAB с помощью asadmin клиента, один должен пройти параметр --type = OSGi, как показано ниже:

asadmin развернуть --type = OSGi Foo. war

Итак, посмотрите, можете ли вы настроить плагин для передачи этой опции.

Sahoo

+0

Вы правы, но вопрос в том, как передать этот параметр! Из анализа источников грузов я узнал, что тип установлен на «osgi» точно, когда тип упаковки модуля «расслоение», но в гибридном приложении тип упаковки - «война». –

0

Хитрость заключается в том:

<deployable> 
    <groupId>com.acme.rest</groupId> 
    <artifactId>rest-api</artifactId> 
    <type>war</type> 
    <implementation>org.codehaus.cargo.container.deployable.Bundle</implementation> 
</deployable> 

У вас еще есть WAR артефакт, но Bundle обманет Cargo, чтобы развернуть его как OSGi.

0

Попробуйте использовать версию 1.4.7, в которой добавлена ​​поддержка отправки asadmin параметров в сочетании с параметром, указанным @Sahoo.

<cargo.glassfish.deploy.arg.1>--type=osgi foo.war</cargo.glassfish.deploy.arg.1> 

Разрешить прохождение дополнительных параметров для GlassFish развертывания https://jira.codehaus.org/browse/CARGO-1245

 Смежные вопросы

  • Нет связанных вопросов^_^