我正在尝试构建一个在Apache Felix中运行的Blueprint包。我试着让它跑起来,但我没有成功。blueprint捆绑包在Karaf中运行良好,但在Felix中运行不佳。是否有任何文档或web上的运行示例来解释如何仅使用普通Felix运行Blueprint捆绑包。我想我必须手动将Aries添加到Felix平台,但它似乎不起作用。
更准确地说,我想要一个简单的服务来查看它是作为蓝图捆绑包从blueprint.xml XML配置文件加载的。服务可能只有一个伪方法,甚至只有一个带有println的构造函数。我希望在OSGI-INF/ Blueprint /blueprint.xml中引用该服务类,以便在Felix加载Blueprint捆绑包时加载它。
发布于 2014-07-29 21:12:52
在花了一些时间尝试解决这个问题之后,我找到了解决方案。因此,您需要在您的Felix (使用4.4.1版本进行测试)中安装以下捆绑包,才能使Aries Blueprint运行:
这些jars将在Felix中启用Aries Blueprint (但仅限于XML配置版本)。如果您想要使用注释,您还必须添加与注释相关的Jars。
这里有一个pom,可以让你轻松工作。只需运行它,所有需要安装到felix中的jar都将位于目标文件夹中。
<?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.apache.aries</groupId>
<artifactId>blueprint-felix-assembly</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Blueprint Felix Jar Assembly</name>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<pax.logging.version>1.4</pax.logging.version>
<aries.version>1.1.0</aries.version>
<aries.proxy.version>1.0.1</aries.proxy.version>
<felix.config.admin.version>1.8.0</felix.config.admin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.configadmin</artifactId>
<version>${felix.config.admin.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-api</artifactId>
<version>${pax.logging.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-service</artifactId>
<version>${pax.logging.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint</artifactId>
<version>${aries.version}</version>
</dependency>
<dependency>
<groupId>org.apache.aries</groupId>
<artifactId>org.apache.aries.util</artifactId>
<version>${aries.version}</version>
</dependency>
<dependency>
<groupId>org.apache.aries.proxy</groupId>
<artifactId>org.apache.aries.proxy</artifactId>
<version>${aries.proxy.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeTransitive>true</excludeTransitive>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>发布于 2014-07-25 04:36:30
白羊座应该可以很好地运行在Apache Felix上,它不需要运行Apache Karaf。事实上,我们使用简单的equinox进行集成测试。
您可以查看integration test base class以了解您需要哪些包。
https://stackoverflow.com/questions/24938214
复制相似问题