2015-07-10 52 views
0

我使用Apache菲利克斯和我有以下標註爲我的DSOSGI DS:屬性 - > ParseException的

@Component(immediate = false,properties = {"name:String=stub"}) 

的Maven生成以下XML

<component ...> 
<implementation ..../> 
<service> 
.... 
</service> 
<properties enty="name:String=stub"/> 
</component> 

然而,當我開始這個包我得到以下內容:

ERROR: com.temp.biz (55): General problem with descriptor entry '/OSGI-INF/com.temp.MyClass.xml' 
org.apache.felix.scr.impl.parser.ParseException: Exception during parsing 
    at org.apache.felix.scr.impl.metadata.XmlHandler.startElement(XmlHandler.java:364) 
    at org.apache.felix.scr.impl.parser.KXml2SAXParser.parseXML(KXml2SAXParser.java:82) 
    at org.apache.felix.scr.impl.BundleComponentActivator.loadDescriptor(BundleComponentActivator.java:245) 
    at org.apache.felix.scr.impl.BundleComponentActivator.initialize(BundleComponentActivator.java:158) 
    at org.apache.felix.scr.impl.BundleComponentActivator.<init>(BundleComponentActivator.java:120) 
    at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:258) 
    at org.apache.felix.scr.impl.Activator.access$000(Activator.java:45) 
    at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:185) 
    at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259) 
    at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232) 
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:479) 
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:414) 
    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) 
    at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:443) 
    at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:913) 

如何解決?這個問題隨着我從@Component中移除屬性而消失。

+0

「@ Component」註釋的完整類名稱是什麼?根據您使用的註釋,答案會有所不同。 –

+0

@Sean Bright org.osgi.service.component.annotations.Component –

回答

2

對於OSGi DS @Component annotation,要使用property

@Component(immediate = false, property = {"name:String=stub"}) 

對於費利克斯SCR註釋,參考the documentation

+0

謝謝。你還可以提供一個org.apache.felix.scr.annotations.Component的例子嗎? –

+0

謝謝。我已經看過文檔,但我沒有看到任何像財產。你做? –

+0

您可以使用['@ Property'](http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html#property)註釋。在瀏覽器中按Ctrl-F並鍵入「屬性」。但是,您也可以使用OSGi註釋(首選),bnd註釋或Felix SCR註釋。不是所有這些的混合物。 –