我在OSGI应用程序框架(AEM)中提供Java的OAuth客户端库所需的依赖项时遇到了麻烦。
https://developers.google.com/api-client-library/java/google-oauth-java-client/setup
我不想手动将每个依赖项转换为OSGI捆绑包BND。所以我正在使用maven-bundle-plugin将它们嵌入到我的包中。到目前为止,我的过程一直是在error.log上查看有关“捆绑中未解决的约束”的消息。然后跟踪丢失的包,添加Maven依赖项,并将其添加到Embed-Dependency部分。这似乎适用于google-http-client和google-oauth-client。GSON(或Jackson2)无法通过这种方式解决,我得到的信息是...
更新:
正如Neil指出的那样,我需要为GSON(google-http-client-gson)嵌入其他依赖项。谢谢!
但是,它仍然无法部署,目前正在报告此消息...
org.osgi.framework.BundleException:com.mypackage.services软件包中未解决的约束[394]:无法解决394.130:缺少要求[394.130] osgi.wiring.package; (osgi.wiring.package = sun.misc)
似乎其他人对此有麻烦,并且可能与OSGi中的Guava有关,我尝试将sun.misc设置为可选。
<Import-Package>sun.misc.*;resolution:=optional,*</Import-Package>
Run Code Online (Sandbox Code Playgroud)
但是捆绑软件无法启动,并提供错误消息“捆绑软件中未解决的约束”。此时,我的问题是...
是否有人在OSGI中成功部署了Java的Google CLient API?如果是这样,怎么办?
或者。我将很高兴收到有关此sun.misc软件包的建议,并且可能与在OSGI中使用Guava有关
我的pom.xml
<dependencies>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.20.0</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
<version>1.20.0</version>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client-java6</artifactId>
<version>1.20.0</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client-jackson2</artifactId>
<version>1.20.0</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client-gson</artifactId>
<version>1.20.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client</artifactId>
<version>1.20.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-java6</artifactId>
<version>1.20.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.jms</artifactId>
<version>3.2-b06</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
<dependency> …Run Code Online (Sandbox Code Playgroud)