OSGI Blueprint里面配置class,set方法必须是void的吗?
在Blueprint.xml配置文件里面
<bean id="nginx" class="com.lala.osgi.server.ApacheServer"> <property name="id" value="10010"/> <property name="name" value="1.19.2"/> <property name="port" value="80"/> <property name="address" value="127.0.0.1"/> </bean>
现在的问题是:我的set方法不是void的
比如说:
public HttpServer setPort(Integer port) { this.port = port; return this; }
org.osgi.service.blueprint.container.ComponentDefinitionException: No setter for port property
请问,这种问题如何解决
(PS, set方法不能改,不能改成void的)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
关键是:setPort方法以及被占用了,而且不是void返回值
一般的做法是,如果是玩链式调用,会写成两个方法:
public void setPort(...){...} // 专用于 set/get
public HttpServer port(...){...; return this;} // 链式
祝你好运。。。
默认不支持非void方法的注入,需要加上:
就可以了
如: