Я нахожусь в ситуации, когда мой контейнер Felix OSGi не запускается должным образом после развертывания groovy с помощью:
obr: развернуть "Groovy Scripting Language" @ 1.7.3
Управлял развертыванием и запуском Groovy, пока я не перезапустил свой контейнер OSGi ... тогда большинство пакетов не запустится. FWIW, я почти уверен, что Groovy не является причиной, хотя в названии пакета есть опечатка. : -)
После некоторого устранения неполадок, включив регистрацию проводов Феликса (слава богу!), Я заметил это (среди всех неисправных пучков, аналогичная причина):
2011-04-03 16:26:43,108 DEBUG [FelixStartLevel] felix.wire - Candidate permutation failed due to a conflict between imports; will try another if possible. (org.apache.felix.framework.resolver.ResolveException: Unable to resolve module org.apache.felix.http.bundle [36.0] because it is exposed to package 'org.osgi.framework' from org.apache.felix.framework [0] and com.springsource.org.aspectj.tools [47.0] via two dependency chains.
Chain 1:
org.apache.felix.http.bundle [36.0]
import: (&(package=org.osgi.framework)(version>=1.3.0))
|
export: package=org.osgi.framework
org.apache.felix.framework [0]
Chain 2:
org.apache.felix.http.bundle [36.0]
import: (&(package=org.osgi.service.log)(version>=1.3.0))
|
export: package=org.osgi.service.log; uses:=org.osgi.framework
osgi.cmpn [15.0]
import: (&(package=org.osgi.framework)(version>=1.5.0)(!(version>=2.0.0)))
|
export: package=org.osgi.framework
com.springsource.org.aspectj.tools [47.0])
Похоже, что o.a.felix.framework
и c.s.o.aspectj.tools
экспортируют o.osgi.framework
.
Я могу возобновить работу, удалив идентификатор пакета 47 (c.s.o.aspectj.tools
), но еще не проверю, есть ли другие последствия. Чувствует себя не так, потому что я удалил c.s.o.aspectj.tools
, но он был указан как обязательный (или необязательный) для Groovy в репозитории OBR. Фактически он был установлен с помощью команды obr: deploy для Groovy.
Похоже, c.s.o.aspectj.tools
не должен был экспортировать o.osgi.framework
, но это всего лишь предположение, так как я не пользуюсь аспектным инструментом.
Вопрос: Как правильно решать такие проблемы, не прибегая к образованным догадкам?