草庐IT

osgi-container

全部标签

java - OSGi:蓝图会取代声明式服务吗?

OSGi的新R4.2规范描述了蓝图服务,用于依赖注入(inject)和服务连接。蓝图是否取代了声明式服务(这仍然是规范的一部分),还是他们打算一起工作?蓝图是否已经可用于流行的实现(Felix和Equinox)? 最佳答案 我问过自己同样的问题,在与其他参与该主题的人讨论这个问题时,主旨是尽管两者在某种程度上重叠,但何时使用的用例却大不相同。DS是一种轻量级的解决方案,可以以声明方式避免激活器和模型服务依赖关系。BP基本上是针对企业部署的DI容器。对于不太熟悉OSGi的动态特性(隐藏在代理后面很多)的“常规”Java开发人员来说,这

java - Maven SLF4J : Class path contains multiple SLF4J bindings

我在运行我的java代码时遇到了运行时异常。有人可以帮我解决绑定(bind)冲突。SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/C:/Users/Air/Desktop/sms/slf4j-1.7.7/slf4j-android-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:Foundbindingin[jar:file:/C:/Users/Air/Desktop/sms/slf4j-1.7.7/slf4j-jcl

java - 以编程方式启动 OSGi(Equinox)?

我希望能够轻松启动OSGi框架(最好是Equinox)并从javamain加载我的pom中列出的任何包。这可能吗?如果有,怎么做?似乎pax工具可以做到这一点,但我似乎找不到任何说明这一点的文档。我知道我可以像这样启动Equinox:BundleContextcontext=EclipseStarter.startup((newString[]{"-console"}),null);但我想做更多-就像我说的:加载更多包,也许启动一些服务等。 最佳答案 任何OSGi框架(R4.1或更高版本)都可以使用FrameworkFactoryA

java - 错误 : 'F' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9,或下划线

已结束。此问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭6年前。Improvethisquestion错误:'F'不是有效的基于文件的资源名称字符:基于文件的资源名称只能包含小写a-z、0-9或下划线错在哪里?没看到 最佳答案 错误不在XML代码中,而是在文件名中。检查res目录中的文件名!似乎其中一

java - OSGi 可以帮助降低复杂性吗?

我在OSGi上看到了很多演示文稿我认为这听起来很有希望实现更好的模块化。显然“热部署”和“并行运行不同版本的x”也是市长的卖点。我想知道OSGipromise解决的问题是否甚至是一个问题......?这让我想起了早期的OO,当时类似的说法是女仆:当OO是新事物时,最大的争论是可重用性。人们普遍声称,在使用OO时,只需“编写一次”,然后就可以“到处使用”。在实践中,我只看到这适用于一些非常低级的示例。我认为这样做的原因是编写可重用的代码很难。不是从技术上讲,而是从界面设计的角度来看。您必须预测future的客户将如何使用您的类(class)并预先做出正确的选择。从定义上讲,这很困难,因此

java - Karaf/Maven - 无法解析 : missing requirement osgi. 接线包

我无法在Karaf(3.0.1版)中启动bundle。bundle是使用maven构建的,它导入gson.我根据需要在maven中包含了gson:com.google.code.gsongson2.3.1构建顺利。但是,在部署bundle时,我收到了来自Karaf的警告:2015-05-2712:45:07,371|WARN|49-19-bin/deploy|fileinstall|11-org.apache.felix.fileinstall-3.2.8|Errorwhilestartingbundle:file:/Users/user/Documents/tools/MyBundl

java - ArrayList 的自定义 Contains 方法

我有一些东西classA{privateLongid;privateStringname;publicbooleanequals(Longv){returnthis.id.equals(v);}}和这些对象的ArrayList。我想要的是能够通过对象的字段检查该列表是否包含某些对象。例如:ArrayListlist=newArrayList();if(list.contains(0L)){...}但重写的Equals方法对我没有帮助。我做错了什么?谢谢更新我也应该重写hashcode()方法吗? 最佳答案 这里有一些代码可以演示它是

java - JaxbRepresentation 给出错误 "doesnt contain ObjectFactory.class or jaxb.index"

我正在尝试创建一个将对象转换为JaxbRepresentation的示例测试应用程序。但是当我尝试运行它时,它给了我一个错误。Main.java文件packagetest_jaxb;importorg.restlet.Server;importorg.restlet.data.Protocol;publicclassMain{/***@paramargsthecommandlinearguments*/publicstaticvoidmain(String[]args)throwsException{ServerhelloServer=newServer(Protocol.HTTP,8

java - HashMap - contains 和 get 方法不应该一起使用

我在一次采访中得到了以下问题。我得到了一个这样的字符数组:char[]characters={'u','a','u','i','o','f','u'};我需要获取每个字符的不同字符和计数:u=3a=1i=1o=1f=1所以我用Java回答了以下代码:HashMapmap=newHashMap();inti=1;for(charc:characters){if(map.containsKey(c)){intval=map.get(c);map.put(c,++val);}elsemap.put(c,i);}面试官是一名解决方案架构师。他问我为什么在这里同时使用containsKey()和

java - List.contains() 失败,而 .equals() 工作

我有一个ArrayList的Test对象,它使用字符串作为等效检查。我希望能够使用List.contains()来检查列表是否包含使用某个字符串的对象。简单地说:Testa=newTest("a");a.equals("a");//TrueListtest=newArrayList();test.add(a);test.contains("a");//False!等于和哈希函数:@Overridepublicbooleanequals(Objecto){if(o==null)returnfalse;if(o==this)returntrue;if(!(oinstanceofTest))