OSGI DS:属性 -> ParseException
OSGI DS: properties -> ParseException
我使用 apache felix,我的 DS 有以下注释
@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[=12=]0(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.
中删除属性时,问题就消失了
对于 OSGi DS @Component
annotation,您想使用 property
:
@Component(immediate = false, property = {"name:String=stub"})
Felix SCR 注释,参考the documentation。
我使用 apache felix,我的 DS 有以下注释
@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[=12=]0(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.
中删除属性时,问题就消失了对于 OSGi DS @Component
annotation,您想使用 property
:
@Component(immediate = false, property = {"name:String=stub"})
Felix SCR 注释,参考the documentation。