在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的)
默认不支持非void方法的注入,需要加上:
ext:field-injection= "true"就可以了
如:
<bean id= "configuration" class= "org.activiti.engine.impl.cfg.JtaProcessEngineConfiguration" ext:field-injection= "true"/ >一般的做法是,如果是玩链式调用,会写成两个方法:
publicvoidsetPort(...){...} //专用于set/get
publicHttpServerport(...){...; returnthis;} //链式
祝你好运。。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。