当前位置: 首页 > 知识库问答 >
问题:

无法解析112.0:缺少[112.0]osgi的需求。装电线。包裹(

米飞龙
2023-03-14

我正在apache Karaf 3.0.3中创建一个简单的Echo服务包,我有我的Activator类,

package com.company.activator;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {

    private static BundleContext context;

    static BundleContext getContext() {
        return context;
    }

    /*
     * (non-Javadoc)
     *
     * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
     */
    public void start(final BundleContext bundleContext) throws Exception {
        Activator.context = bundleContext;
    }

    /*
     * (non-Javadoc)
     *
     * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
     */
    public void stop(final BundleContext bundleContext) throws Exception {
        Activator.context = null;
    }

我可以通过Eclipse创建捆绑包,使用以下Manniest文件

Manifest-Version: 1.0
Private-Package: com.company.activator
Built-By: noushad
Tool: Bnd-0.0.238
Bundle-Name: osgi
Created-By: Apache Maven Bundle Plugin
Build-Jdk: 1.7.0_76
Bundle-Version: 1.0.0
Bnd-LastModified: 1427119505629
Bundle-ManifestVersion: 2
Bundle-Activator: com.company.activator.Activator
Export-Packages: com.company.echo
Bundle-SymbolicName: com.company.osgi
Import-Package: org.osgi.framework;version="1.8"

我还有下面的POM文件

    <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>com.company</groupId>
    <artifactId>osgi</artifactId>
    <packaging>bundle</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>osgi Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>6.0.0</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>osgi</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>1.4.0</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>${pom.groupId}.${pom.artifactId}</Bundle-SymbolicName>
                        <Bundle-Name>${pom.artifactId}</Bundle-Name>
                        <Bundle-Version>1.0.0</Bundle-Version>
                        <Private-Package>com.company.activator</Private-Package>
                        <Bundle-Activator>com.company.activator.Activator</Bundle-Activator>
                        <Export-Packages>com.company.echo</Export-Packages>
                        <Import-Package>*</Import-Package>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

也是我的回声课

package com.company.echo;

public class Echo {

    public String echo(final String string) {
        return string;
    }
}

当我在karaf 3.0.3上部署此应用程序时,我面临以下问题

>

  • 在尝试启动包时获取以下堆栈跟踪

    错误:Bundle com。公司osgi[112]启动/停止捆绑包时出错。(org.osgi.framework.BundleException:bundle com.company.osgi[112]中未解决的约束:无法解决112.0:缺少需求[112.0]osgi.willing.package(

    有人能帮我弄清楚到底是什么问题吗。

    提前谢谢。。!

  • 共有1个答案

    索和璧
    2023-03-14

    我不认为karaf 3支持OSGi Core R6(org.osgi.framework包版本1.8)。您应该尝试对其他版本的OSGi API进行编译

     类似资料:
    • 我写了一个包含5个模块的项目。我用maven在intellij IDEA中创建它们,然后为所有模块添加“OSGi”框架支持。我使用maven-bundle-plugin来配置导出包和导入包。但是当我运行它的时候,总是有一个错误: 启动器模块包含Bundle-Activator,org.gxkl.server包在服务模块中。我使用类似的pom来配置模块,但是只有服务模块出错。启动器中的pom文件如下

    • 问题内容: 我是OSGI的新手,我试图找出解决以下错误的方法 org.osgi.framework.BundleException:包org.foo.serviceBundle中未解决的约束[253]:无法解决253.0:缺少要求[253.0]包;未解决。(&(package = org.slf4j)(版本> = 1.6.0)(!(版本> = 2.0.0))) 我使用了Maven原型来生成包,并在

    • 我从卡拉夫那里得到以下消息: 我不明白这个错误意味着什么问题在哪里 我使用的是karaf 4.0.10版,运行的是,我想安装自定义business defa数据库。我希望有人能解释一下这个错误是什么意思。我仔细检查了maven存储库中提到的ojdbc8_12.2.0.1.0_ojdbc8-12.2.0.1.0。走对了路。

    • 我是Apache karaf和OSGI的新手。我正在尝试编写和运行一个非常简单的捆绑包。但是我在启动该捆绑包时遇到了这个错误: 执行命令时出错:在捆绑包上执行命令时出错:无法解析karaf[86](R 86.0):缺少需求[karaf[86](R 86.0)]osgi。装电线。包裹(osgi.wiring.package=bundle)未解决的需求:[[karaf[86](R 86.0)]osgi

    • 我试图用bndool编写一个OSGI REST包。 我在cnf项目中添加了我需要的所有罐。然后我把它们添加到捆绑包构建路径中。 我得到以下运行时异常 OSGi捆绑包未启动:缺少需求osgi.wiring.package( 我不明白这个错误,因为我使用了javax.ws.rs-api 2.0.1。 我试图在构建路径中明确指定版本,如下所示 没有任何运气。 我用错罐子了吗? 非常感谢。 这是我的bnd

    • 我无法在 Karaf(版本 3.0.1)中启动捆绑包。 该捆绑包使用maven构建,并导入gson。 我根据需要将gson包含在maven中: 构建运行良好。但是,在部署捆绑包时,我收到了来自Karaf的警告: 捆绑包未安装。 中的导入包开头为: 我试图改变它: 但它给了我一个类似的错误: pom.xml代码: (我构建捆绑包时maven下载的版本)是: 我也试过 现在依赖项已经嵌入,但是Kara