标签: apache-karaf


如何创建JPA OSGI包

我想用JPA 2.0创建OSGI持久性服务包.我使用OpenJpa作为持久性提供程序.

我尝试了一个带有JPA支持的示例OSGI包,当我的客户端调用持久性功能时,我遇到了问题.该服务无法创建EntityManagerFactory.始终为空.

我使用Apache Karaf作为安装服务的平台.

目前我正在eclipse中创建一个OSGI包,并将其作为一个包导出并在Karaf中部署.客户端可以调用该服务.但问题是当我得到EntityManagerFactory时.

我使用波纹管代码来获取EntityManagerFactory.

  OpenJPAEntityManagerFactory emf = OpenJPAPersistence.createEntityManagerFactory
    ("StudentServiceProvider","META-INF/persistence.xml");
Run Code Online (Sandbox Code Playgroud)

请告诉我如何使用OpenJPA创建OSGI persitence bundle.

osgi openjpa apache-karaf osgi-bundle

1
推荐指数
1
解决办法
4386
查看次数

如何只获取karaf中的活动包

我需要一个命令才能获得osgi/karaf中的活动包,

I know that scr:list / osgi:list will list all the bundles irrespective of state. 

Is there any other easy way to check all the bundles are active in karaf?
Run Code Online (Sandbox Code Playgroud)

问候,哈利

state osgi bundle apache-karaf karaf

1
推荐指数
1
解决办法
1106
查看次数

Karaf 4.0.4:自定义发行版 - karaf-maven-plugin

我正在尝试通过将eventadminscr功能添加到启动功能来构建自定义发行版。

我根据http://karaf.apache.org/manual/latest/developers-guide/custom-distribution.html的官方文档尝试了以下操作。

我使用以下 pom.xml 创建了一个新项目:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>org.jemz.jf.karaf</groupId>
<artifactId>jf-framework-karaf</artifactId>
<packaging>karaf-assembly</packaging>
<name>${project.artifactId}</name>

<dependencies>
    <dependency>
        <groupId>org.apache.karaf.features</groupId>
        <artifactId>framework</artifactId>
        <version>4.0.4</version>
        <type>kar</type>
    </dependency>

    <dependency>
        <groupId>org.apache.karaf.features</groupId>
        <artifactId>standard</artifactId>
        <version>4.0.4</version>
        <classifier>features</classifier>
        <type>xml</type>
        <scope>runtime</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>karaf-maven-plugin</artifactId>
            <version>4.0.4</version>
            <extensions>true</extensions>
            <configuration>
                <!-- no startupFeatures -->
                <startupFeatures>
                    <feature>eventadmin</feature>
                    <feature>scr</feature>
                </startupFeatures>

                <installedFeatures>
                </installedFeatures>
                <bootFeatures>
                    <feature>standard</feature>
                </bootFeatures>

                <excludedArtifactIds>
                    <artifactId>slf4j-api</artifactId>
                </excludedArtifactIds>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我运行“mvn install”时,它失败了:

[ERROR] Failed to execute goal org.apache.karaf.tooling:karaf-maven-plugin:4.0.4:assembly (default-assembly) on project jf-framework-karaf: …
Run Code Online (Sandbox Code Playgroud)

apache-karaf karaf

1
推荐指数
1
解决办法
2338
查看次数

OSGi (Karaf) 分辨率与 Maven 依赖项

在我下面的示例中,OSGi 解析和 Maven 依赖项支持所需的步骤似乎存在差异/重复。

我有一个依赖于外部 3rd 方 jar 的 jar,在这种情况下是 time4j。

<dependency>
  <groupId>net.time4j</groupId>
  <artifactId>time4j-core</artifactId>
  <version>4.16</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

然后我可以通过导入包和运行等在本地运行我的简单 jar。

导入 OSGi 时,我必须确保首先导入这个 jar,通常使用 PAX Wrap Url。

这对于 1 个 jar 依赖项没问题,但是当存在多个依赖项时呢。我可以使用 features.xml 文件来收集这些罐子,但为什么呢?我已经在我的 pom.xml 中指定了它们。

似乎 OSGi / Karaf 应该有一种方法可以读取 pom.xml 依赖项,并在需要时使用 PAX Wrap url 将它们导入到容器中。

我在这里错过了什么吗?

java osgi maven apache-karaf

1
推荐指数
1
解决办法
561
查看次数

如何在apache camel中全局设置交换属性

例如:

from("direct:test")
  .multicast() 
     .to("direct:req1","direct:req2");

from("direct:req1")
  .to(cxf:bean:endpoint1)
  .process("response1");

from("direct:req2")
 .process("requestProcessor2")
 .to(cxf:bean:endpoint2)
 .process(response2);
Run Code Online (Sandbox Code Playgroud)

我是apache camel的新手,我只想知道有没有办法使用我从"requestProcessor2"中的endpoint1获得的响应.

apache-camel apache-karaf apache-servicemix

1
推荐指数
1
解决办法
7747
查看次数

缺少要求 osgi.wiring.package=org.osgi.framework)(version&gt;=1.8.0)(!(version&gt;=2.0.0)))

我在 Karaf 4.0.5 启动期间遇到错误。我收到此错误:

(version>=1.8.0)(!(version>=2.0.0))) Unresolved requirements: [[Tracking_Service [11](R 11.0)] osgi.wiring.package; (&(osgi.wiring.package=org.osgi.framework)(version>=1.8.0)(!(version>=2.0.0)))]
        at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)[org.apache.felix.framework-5.4.0.jar:]
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)[org.apache.felix.framework-5.4.0.jar:]
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)[org.apache.felix.framework-5.4.0.jar:]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253)[4:org.apache.felix.fileinstall:3.5.4]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225)[4:org.apache.felix.fileinstall:3.5.4]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512)[4:org.apache.felix.fileinstall:3.5.4]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361)[4:org.apache.felix.fileinstall:3.5.4]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312)
Run Code Online (Sandbox Code Playgroud)

您能给我一些如何解决这个问题的建议吗?

我使用这个依赖项:

<dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>6.0.0</version>
            <type>jar</type>
        </dependency> 
Run Code Online (Sandbox Code Playgroud)

java osgi maven apache-karaf

1
推荐指数
1
解决办法
2168
查看次数

使用Maven生成karaf功能时出现NoFileAssignedException异常

运行MVN安装时,我的karaf功能项目中出现错误。这是pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>com.dmasoft.karaf.example</groupId>
    <artifactId>assemblies-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

<groupId>com.dmasoft.karaf.example.feature</groupId>
<artifactId>dmasoft-feature</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>feature</packaging>
<name>${project.groupId}/${project.artifactId}:${project.packaging}:${project.version}</name>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>karaf-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

当我运行mvn clean install时,出现以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install (default-install) on project dmasoft-feature: NoFileAssignedException: The packaging plugin for this project did not assign a main file to the project but it has attachments. Change packaging to 'pom'. -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

maven apache-karaf

1
推荐指数
1
解决办法
2179
查看次数

Karaf 功能安装抛出不支持的“Bundle-ManifestVersion”值:1

大家好,我在 karaf 中使用 feature install 时遇到以下错误

org.apache.karaf.features.internal.util.MultiException: Error
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:84)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager.createDownloader(MavenDownloadManager.java:72)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:358)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:355)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:191)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:263)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1079)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:975)[9:org.apache.karaf.features.core:4.0.3]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_79]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_79]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_79]
    at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
Caused by: java.lang.Exception: Unable to create resource for bundle mvn:org.dt.dummy/Diff-Blueprint/0.0.1-SNAPSHOT
    at org.apache.karaf.features.internal.region.Subsystem.createResource(Subsystem.java:567)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.Subsystem$1.downloaded(Subsystem.java:376)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader$1.operationComplete(MavenDownloadManager.java:133)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader$1.operationComplete(MavenDownloadManager.java:127)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.DefaultFuture.notifyListener(DefaultFuture.java:344)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.DefaultFuture.notifyListeners(DefaultFuture.java:329)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.DefaultFuture.setValue(DefaultFuture.java:255)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.AbstractDownloadTask.setFile(AbstractDownloadTask.java:61)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:59)[9:org.apache.karaf.features.core:4.0.3]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_79]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_79]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)[:1.7.0_79]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)[:1.7.0_79]
    ... 3 more
Caused by: org.osgi.framework.BundleException: Unable to build resource for mvn:org.dt.dummy/Diff-Blueprint/0.0.1-SNAPSHOT: …
Run Code Online (Sandbox Code Playgroud)

osgi apache-karaf blueprint-osgi pax-exam karaf

0
推荐指数
1
解决办法
1万
查看次数

在Karaf 3.0.5中的骆驼应用程序捆绑中动态配置加载

我有一个简单的Camel应用程序捆绑包,该捆绑包将在Apache Service Mix 6.1下的Karaf 3.0.5中部署。配置文件放置在etc/目录中(假设它名为wf.cfg)。我想在我的应用程序包中具有动态配置更改功能。这样,无论何时更改了内容wf.cfg,都可以立即打包。为此,我在我的 blueprint.xml

<cm:property-placeholder persistent-id="wf"
    update-strategy="reload">
    <cm:default-properties>
        <cm:property name="env" value="local" />
    </cm:default-properties>
</cm:property-placeholder>

<!-- a bean that uses a blueprint property placeholder -->
<bean id="configBean" class="com.jabong.orchestratorservice.basecomponent.config.ConfigBean">
        <property name="env" value="${env}" />
</bean>
Run Code Online (Sandbox Code Playgroud)

我现在面临的问题是如果将update-strategy设置为reload。然后,它似乎正在重新加载整个bean。

有人可以让我知道是否可以只重新加载configBean整个捆绑包吗?如果我能做到这一点,那么可能是我可以对configBean应用程序包可以使用的配置变量进行静态引用?

完整blueprint.xml的放在这里

apache-camel apache-karaf aries blueprint-osgi apache-servicemix

0
推荐指数
1
解决办法
1672
查看次数