我想要创建OSGI包。我创造了一个简单的课程:
public class Activator implements BundleActivator {
public void start(BundleContext bundleContext) throws Exception {
System.out.println("::::START MAIL BUNDLE::::");
}
public void stop(BundleContext bundleContext) throws Exception {
System.out.println("::::STOP MAIL BUNDLE::::");
}
}我的pom.xml
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>6.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>osgi-bundle</id>
<goals>
<goal>bundle</goal>
</goals>
<phase>package</phase>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Import-Package>
*;resolution:=optional
</Import-Package>
</instructions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>我使用Service Mix。我将org.osgi.core-6.0.0.jar和jar添加到目标文件夹中。我的包是活动的,但是在karaf控制台中启动/停止包时,我没有看到我的消息。我做错了什么?
发布于 2017-11-04 19:42:09
您必须在maven-bundle-config中设置<Bundle-Activator>your.package.name.Activator</Bundle-Activator>。还请注意,永远不要部署org.osgi.core或org.osgi.componendium。核心包由OSGi框架部署,概要由单个规范执行。
https://stackoverflow.com/questions/47114656
复制相似问题