Я создал источник данных, используя рекомендованный способ, поместив файл datasource-x.cfg в каталог / etc.Это все работает отлично, и когда karaf ist запущен, я могу запросить эту базу данных через консоль karaf.Однако, если я ссылаюсь на этот источник данных из другого проекта верблюда проекта, разрешение источника данных всегда терпит неудачу, так как кажется, что проект инициализируется раньше, чем источник данных, что приводит к следующей ошибке:
org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=fe1b16a5-c2a6-42aa-9bcd-a7404ff26c7c; type=karaf.feature; version="[0,0.0.0]"; filter:="(&(osgi.identity=fe1b16a5-c2a6-42aa-9bcd-a7404ff26c7c)(type=karaf.feature)(version>=0.0.0)(version<=0.0.0))" [caused by: Unable to resolve fe1b16a5-c2a6-42aa-9bcd-a7404ff26c7c/0.0.0: missing requirement [fe1b16a5-c2a6-42aa-9bcd-a7404ff26c7c/0.0.0] osgi.identity; osgi.identity=com.xyz.xyz.service; type=osgi.bundle; version="[0.0.1.SNAPSHOT,0.0.1.SNAPSHOT]"; resolution:=mandatory [caused by: Unable to resolve com.xyz.xyz.service/0.0.1.SNAPSHOT: missing requirement [com.xyz.xyz.service/0.0.1.SNAPSHOT] osgi.service; effective:=active; filter:="(&(objectClass=javax.sql.DataSource)(dataSourceName=xyzDs))"]]
Мой проектный справочник: <reference id="xyzDs" availability="optional" interface="javax.sql.DataSource" filter="(dataSourceName=xyzDs)" />
Я использую maven-karaf-ассемблер и у меня есть следующий конфиг:
<startupFeatures>
<feature>jdbc</feature>
<feature>pax-jdbc-mssql</feature>
<feature>pax-jdbc-config</feature>
</startupFeatures>
...
<bootBundles>
<bootBundle>
mvn:com.xyz/my-project/1.0.0
</bootBundle>
</bootBundle>
Кто-нибудь знает, как настроить karaf в usch способечто источник данных инициализируется до разрешения проекта другого проекта?
Множество Thx для любых указателей!