osgi - Jitsi 包含用于定制的外部 jar

标签 osgi apache-felix jitsi felix-dependency-manager

目前我正在致力于开源 Jitsi 的定制。不知何故,我想添加第 3 方 jar 进行自定义。

我尝试了很多方法来包含第 3 方 jar,但我遇到了这个错误。

因此,请帮助我消除此错误或提供一些添加第 3 方 jar 的指导。

Auto-properties install: reference:file:sc-bundles/commons-vfs2-2.0.jar (org.osgi.framework.BundleException: Unable to cache bundle: reference:file:sc-bundles/commons-vfs2-2.0.jar - java.io.IOException: Referenced file does not exist: sc-bundles\commons-vfs2-2.0.jar)
     [java] org.osgi.framework.BundleException: Unable to cache bundle: reference:file:sc-bundles/commons-vfs2-2.0.jar
     [java]     at org.apache.felix.framework.Felix.installBundle(Felix.java:2876)
     [java]     at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:165)
     [java]     at org.apache.felix.main.AutoProcessor.processAutoProperties(AutoProcessor.java:296)
     [java]     at org.apache.felix.main.AutoProcessor.process(AutoProcessor.java:79)
     [java]     at org.apache.felix.main.Main.main(Main.java:292)
     [java]     at net.java.sip.communicator.launcher.SIPCommunicator.main(SIPCommunicator.java:219)
     [java] Caused by: java.io.IOException: Referenced file does not exist: sc-bundles\commons-vfs2-2.0.jar
     [java]     at org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:852)
     [java]     at org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:550)
     [java]     at org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:153)
     [java]     at org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:277)
     [java]     at org.apache.felix.framework.Felix.installBundle(Felix.java:2872)
     [java]     ... 5 more

最佳答案

将 JAR 文件 (custom.jar) 添加到 lib/ 目录。然后编辑这两个文件,如下所示:

jitsi.eml - 将以下条目添加到文件中:

<lib name="custom.jar" scope="COMPILE">
    <relative-module-cls project-related="jar://$PROJECT_DIR$/lib/custom.jar!/"/>
</lib>

nbproject/project.xml - 搜索 <classpath mode="compile"> (有两次这样的情况)并将您的 jar 文件登记为

<classpath mode="compile">lib/custom.jar:lib/felix.jar:[MORE JARS HERE]</classpath>

<classpath mode="compile">classes:lib/custom.jar:lib/felix.jar:[MORE JARS HERE]</classpath>

编辑文件后,运行ant clean; ant clean-bundle; Ant 制作

一切顺利。

关于osgi - Jitsi 包含用于定制的外部 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36766329/

相关文章:

OSGI:当调用一个已经很忙的服务时会发生什么?

android - 如何限制用户在 Jitsi 电话 session 中打开音频和视频?

以编程方式启动 OSGi 框架时出现 java.util.NoSuchElementException

osgi - OSGi 包中嵌入依赖的使用

java - 如何使用代码停止 Apache Felix Webconsole 中的 bundle

spring - AEM 6.3 - 将 Felix 迁移到 OSGi 注释 : How to deal with propertyPrivate?

video-streaming - Jitsi Video 桥接组件、韵律、负载均衡

reactjs - 如何在reactjs中隐藏jitsi水印

java - OSGi 和性能?

java - 将 maven-bundle-plugin 包含的资源声明为可选