从内部类创建蓝图bean

时间:2013-09-17 08:34:06

标签: java spring blueprint-osgi

在Spring中,我可以从内部类创建一个bean:

<bean id="exampleInnerBean" class="my.package.Class$InnerClass" />

但是在Blueprint中这不起作用,我得到一个SAXParseException:

cvc-datatype-valid.1.2.1: 'my.package.Class$InnerClass' is not a valid value for 'NCName'.

任何想法我做错了什么/我应该使用什么语法/如果这是可能的?

如果它有帮助/重要,我正在将包含上述bean的包安装到JBoss Fuse 6.0.0中。

非常感谢

1 个答案:

答案 0 :(得分:1)

我能够使用与Java相同的语法:

<bean id="exampleInnerBean" class="my.package.Clazz.InnerClass" />

我遇到的唯一问题是因为我使用 Maven Bundle插件 ...插件假设my.package.Clazz是一个包,因此将其添加到导入包的列表中我的捆绑。只需将以下内容添加到POM中的插件<configuration><instructions>标记即可解决此问题:

 <Import-Package>!my.package.Clazz,*</Import-Package>

这会阻止插件将my.package.Clazz添加到我的包的导入包列表中,一切正常。