首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务中的"@IgniteInstanceResource var ignite: Ignite“为空

服务中的"@IgniteInstanceResource var ignite: Ignite“为空
EN

Stack Overflow用户
提问于 2018-05-21 18:25:55
回答 1查看 228关注 0票数 0

正如标题所说,ignite的注入特性在我的服务上不起作用。

我的服务接口代码很简单

代码语言:javascript
复制
trait FeederService extends Service with Logging{

  @IgniteInstanceResource  protected var ignite: Ignite = _
  // log.info(s"ignite instance: ${ignite.toString}")

  def runNewFeeders(qty: Int)
}

下面是我的服务实现

代码语言:javascript
复制
  override def init(ctx: ServiceContext): Unit = {

    log.info(s"Initializing service ${ctx.name()}") 
    log.info(s"ignite instance: ${ignite.toString}")
  }

此代码崩溃,因为ignite对象为空。

我的服务部署大体上如下(当然,我可以在main方法中访问Ignite对象)

代码语言:javascript
复制
ignite.services(clientGroup).deployNodeSingleton("feeder-swarm",
new FeederServiceImpl())

不知道是否相关,但clientGroup是用

代码语言:javascript
复制
val clientGroup = ignite.cluster().forAttribute("client", "true")

因为我的节点没有使用Ignite客户机定义(从Ignite的角度来看,它们都是服务器)

有什么帮助吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-05-21 19:24:28

问题是您试图在注入之前访问Ignite实例。

Ignite只能在对象构造之后被注入,但是您的实例初始化器试图使用它(${ignite.toString}),但失败了。

将您的log.info调用移动到init方法,它将会工作。

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

https://stackoverflow.com/questions/50446814

复制
相关文章

相似问题

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