2013-05-23 3 views
0

Я хочу установить два идентичных пучка или один и тот же комплект дважды в контейнере OSGi. Я использую контейнер OSGi - FUSE ESB. Вот информация расслоение:OSGi как установить два идентичных пучка?

pom.xml:

<groupId>com.helloworldbundle</groupId> 
<artifactId>HelloWorldBundle</artifactId> 
<version>1.0.0-SNAPSHOT</version> 

план:

<?xml version="1.0" encoding="UTF-8"?> 
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> 

    <bean id="helloworldbundlecopybean" 
    class="com.helloworldbundle.HelloWorld" 
    init-method="init" destroy-method="destroy"> 
    </bean> 

</blueprint> 

Первая установка прошла успешно. Когда я пытаюсь установить его снова, он не удался. Затем я сделать копию проекта и изменить его:

изменить имя папки проекта в HelloWorldBundleCopy

изменить артефакт

<artifactId>HelloWorldBundleCopy</artifactId> 

изменения боб идентификатор

<bean id="helloworldbundlecopybeancopy" 

Но все-таки Я не могу установить модифицированный комплект:

Error executing command: Error installing bundles: 
Unable to install bundle /home/li/Documents/Java/HelloWorldBundleCopy/target/HelloWorldBundleCpoy-1.0.0-SNAPSHOT.jar 

обновление на мой вопрос:

Вот мой сценарий:

У меня есть три хоста: HOST1, HOST2 и host3

FUSE ESB OSGi контейнер установлен в host3. Мне нужно запустить службу, например, HelloWorld на Host1 и Host2. И эта услуга зарегистрирована в FUSE ESB, которая находится на Host3.

Вот почему мне нужно зарегистрировать один и тот же комплект дважды с помощью FUSE ESB.

Вот мой вопрос:

  1. Можно ли запустить пакет вне контейнера, как работает HelloWorld узелок на одном хосте, но зарегистрировать его FUSE ESB на другой хост? А как это сделать? Эксперимент, который я сделал ранее, заключается в регистрации пакета услуг для FUSE ESB на том же компьютере:

    FuseESB: karaf @ root> установочный файл: /home/li/Documents/Java/HelloWorldBundle/target/HelloWorldBundle-1.0 0,0-SNAPSHOT.jar

2.How изменить существующий Maven проект, с тем чтобы установить его снова без создания нового проекта Maven?

+1

Действительно ли вы хотите установить пакет дважды, или вам нужны два экземпляра вашего компонента HelloWorld? –

ответ

5

В OSGi комбинация Bundle-SymbolicName и Bundle-Version похожа на «первичный ключ» пакета ... вы не можете установить два пучка, имеющие точно такое же символическое имя и версию.

В вашем вопросе вы перепутали инструменты с проблемами времени выполнения, поэтому трудно сказать, что происходит на самом деле ... в любом случае, вы изменили artifactId в Maven, но я не знаю, какой эффект может иметь на Bundle-SymbolicName , о чем заботится OSGi. Вы можете установить этот пакет дважды, если вы измените этот заголовок.

Однако это задает вопрос, почему вы хотите установить один и тот же комплект дважды? Это очень редко полезно. Пожалуйста, объясните, почему вы хотите это сделать; вероятно, есть лучшее решение вашей основной проблемы.

+0

Я обновил свой вопрос по моему сценарию. Можете ли вы мне помочь? –

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