在 karaf 上部署 Microsoft Azure API jar

问题描述:

我是 Maven 和 OSGI 的新手,谁能帮助我知道如何在 karaf OSGI 容器上部署 Microsoft Azure API jar?以下是我的 Maven 项目的 pom 内容.com.microsoft.windowsazure微软-windowsazure-api0.4.3

i am new to Maven and OSGI, can anyone please help me knowing how to deploy Microsoft Azure API jar on karaf OSGI container? Following is pom content of my Maven project. com.microsoft.windowsazure microsoft-windowsazure-api 0.4.3

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.1</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.2</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-jaxrs</artifactId>
        <version>1.9.2</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.2</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-xc</artifactId>
        <version>1.9.2</version>
    </dependency>
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.2.3-1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.13</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>1.13</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.13</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.5</version>
    </dependency>

我已经嵌入了如下依赖项

i have embedded dependencies like following

                                         <Embed-Dependency>
                        microsoft-windowsazure-api,
                        commons-lang3,
                        commons-logging,
                        jackson-core-asl,
                        jackson-jaxrs,
                        jackson-mapper-asl,
                        jackson-xc,
                        javax.inject,
                        jaxb-impl,
                        jersey-client,
                        jersey-core,
                        jersey-json,
                        jettison,
                        mail
                    </Embed-Dependency>

当我这样做时,它不断显示不同包的缺失依赖项.我已经在 pom 中导入了所有包 (*).

When i do this it keeps showing missing dependencies for different packages. i have imported all packages (*) in pom.

下载bnd.jar(打包工具)

download bnd.jar (bundle tool)

将 azur 和 bnd 放在一个目录中

keep azur and bnd both jar in a directory

转到该目录并运行以下命令

go to that directory and run following command

java -jar bnd.jar wrap microsoft-windowsazure-api 0.4.3.jar

tada...你的包已经准备好了,只需部署它并继续你的工作:)

tada... your bundle is ready, just deploy it and continue your work :)