首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将强制受抚养人蓝图改为强制受抚养人

将强制受抚养人蓝图改为强制受抚养人
EN

Stack Overflow用户
提问于 2015-08-20 18:01:21
回答 1查看 243关注 0票数 0

请帮我解决一个问题。我有一个osgi包。蓝图配置如下所示

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <bean class="test.SomeBean">
        <argument>
            <reference-list availability="mandatory" member-type="service-object" interface="test.Service1"/>
        </argument>
    </bean>

    <service interface="test.Service1">
        <bean class="test.Service1Impl">
            <argument>
                <reference-list availability="mandatory" member-type="service-object" interface="test.Service2"/>
            </argument>
        </bean>
    </service>

    <service interface="test.Service2">
        <bean class="test.Service2Impl"/>
    </service>

</blueprint>

部署之后,我得到一个java.util.concurrent.TimeoutException。如果我将Service2声明移到另一个包中,或者将可用性更改为可选,那么所有操作都很好。为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 21:13:04

原因是你依赖于你所提供的服务。对于强制服务,BLueprint不能这样做。

原因是,每当蓝图命中强制引用时,它都确保在开始之前解决依赖关系。只有当所有强制引用都被解析时,上下文的服务才会被发布。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32125241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档