jjzjj

java - 使用 maven tycho 构建 list 条目 Bundle-ClassPath,该 list 条目由 maven-dependency-plugin 下载

我有一个带有此list的eclipse插件:...Bundle-ClassPath:.,lib/drools-api.jar,lib/drools-core.jar,...现在我们不想将drools-api.jar和drools-core.jar放在源代码管理中,所以我们使用插件从Maven存储库:org.apache.maven.pluginsmaven-dependency-plugincopy-bundle-classpath-libsvalidatecopylibtruetruetruetrueorg.droolsdrools-apiorg.droolsdrools-core.

java - 如何让 Spring JPA、Hibernate 和 OSGi 发挥出色?

我正在尝试让一个WAR文件在KarafOSGi容器中运行。该应用程序在独立Jetty6.1.26中正常运行,但是当该应用程序在Karaf中运行时,出现以下异常并且Karaf实例卡住:WARNorg.hibernate.ejb.packaging.InputStreamZippedJarVisitor-Unabletofindfile(ignored):bundle://125.0:240/java.lang.NullPointerException:inisnull请注意,该应用程序不依赖于单独的OSGi包中的Hibernate;它包括WEB-INF/lib中的hibernatejar

java - 在抽象类中提供 DI 方法

在大多数情况下,我有很多组件具有相同的类,由OSGi声明式服务注入(inject)。这些服务将用于执行一些对所有派生组件都相同的逻辑。因此,为了避免重复代码,最好使用抽象类。是否有可能将DI引用方法(设置/取消设置)移动到抽象类。我正在使用Bnd。例如:@ComponentpublicclassBimplementsIA{privateServiceCsc;@ReferencepublicvoidsetServiceC(ServiceCsc){this.sc=sc;}publicvoidexecute(){Stringresult=executeSomethingDependendOn

java - Eclipse 中的 OSGi 声明式服务、多个服务接口(interface)和线程安全

我刚刚在我的代码中偶然发现了一个现象,归结为:我有一个OSGi声明式服务,提供两个配置如下的服务接口(interface):在我的代码中,我有两个不同的线程,它们都打开一个ServiceTracker来获取服务实例,但是通过不同的接口(interface):tracker=newServiceTracker(getBundle().getBundleContext(),.class,null);tracker.open();tracker.waitForService(1000l);所以一个线程使用IRedactedStore作为服务类,另一个使用IRedactedStoreContr

java - 无法启动 osgi 包,因为无法解析导入

我制作了一个小型API包和一个应该使用该API的服务包。在我的mavenpom.xml文件中,我在正确的版本中为我的api包添加了一个依赖项,如下所示:at.foobar.osgi.apifoobarapi1.0我使用maven-bundle插件来创建包,因此我使用mvncleaninstall通过jar文件创建。list看起来像这样(服务):Manifest-Version:1.0Private-Package:at.foobar.osgi.producerBuilt-By:foobarTool:Bnd-0.0.238Bundle-Name:foobarproducerCreated

java - Eclipse RCP 插件中的多个 slf4j 绑定(bind)

我有一个简单的Eclipse插件,在激活时会出现以下错误:SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[bundleresource://103.fwk8918249:1/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:Foundbindingin[bundleresource://103.fwk8918249:4/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:Seehttp://www.slf4j.org/co

java - 无法加载或实例化 TagLibraryValidator 类 : org. apache.taglibs.standard.tlv.JSTLCoreTLV

所以我在Gemini运行时下使用OSGi中的JSTL。当我尝试访问我的servlet的url时,出现以下异常:-SEVERE:Servlet.service()forservletjspthrewexceptionorg.apache.jasper.JasperException:/WEB-INF/login.jsp(line:3,column:66)UnabletoreadTLD"META-INF/c.tld"fromJARfile"file:/D:/OSGi%20Runtime/Gemini/gemini-web/dep/com.springsource.javax.servlet

java - OSGi 中的服务引用

一旦从bundle上下文中检索到OSGi服务的实例,它会在服务停止时失效吗?我的初步测试表明,即使在服务包停止后,服务实例也可以使用,这与我对OSGi动态特性的理解相矛盾。我想这可以归结为从OSGi容器中的另一个包中检索服务(通过ServiceTracker)实际上做了什么,它是创建一个新实例还是为您提供指向在容器中注册的实例的指针?服务停止后使用服务实例有没有危险? 最佳答案 这是一个非常好的问题,所以我深入研究了规范以寻找明确的答案。事实证明,有一整节都在讨论这个问题——参见5.4StaleReferences节,从OSGiSe

java - 如何使用 OpenJDK 7 编译 mavenized OSGi 4.3 包?

我正在尝试使用OpenJDK7根据OSGi规范4.3编译我的OSGi包,但出现错误:[ERROR]Failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:2.5:compile(default-compile)onprojectexample:Compilationfailure[ERROR]/tmp/baka/example/src/main/java/org/example/Activator.java:[14,24]error:typeServiceReferencedoesnottakeparamete

java - OSGI 有效版本范围

目前我正在尝试实现OSGI版本范围(针对不同的主题,但我喜欢他们定义版本范围的方式)。但是,我很难在OSGI中找到版本范围的具体定义。不幸的是,OSGIAPI确实包含Version类但不包含VersionRange类。似乎所有OSGI容器都对(有点无法找到的)版本范围定义提出了自己的解释。因此我有几个问题:如果我使用versionRange=1.4.0,这会映射到版本>=1.4.0吗?这是一个有效的版本范围吗:versionRange=[1.0.0,0]:我会说是(版本1.0.0到任何版本),Eclipse实现接受它作为一个版本但没有正确处理它。这是否也是一个有效的版本范围:versi