4

我在我的应用程序中添加了一个AkkaSpring和一起使用的演员OSGI

我尝试Spring @Component bean像这样使用 Actor:

private final ActorSystem system = ActorSystem.create("actor-system");
private ActorRef managerActorRef = system.actorOf(Props.create(ManagerActor.class), "ldapManagerActor");

当我启动应用程序时,它会引发异常(No configuration setting found for key 'akka'):

Instantiation of bean failed; nested exception is org.springframework.
beans.BeanInstantiationException: Could not instantiate bean class [com.myconpany....ByBean]: Constructor threw exception; nested exception is com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka'

我看过这个:doc。似乎我的问题的根源与class loader我应该传递给/forakka-systemapplication.conf描述这个的文件有关。

但到目前为止,我找不到合适stets的方法让它全部工作。

有人可以帮忙吗?


我的尝试:

流淌这篇文章。

当我放:

<bean id="actorSystem" class="akka.actor.ActorSystem" factory-method="create" scope="singleton"></bean>

我有类似的错误:

Could not autowire field: private akka.actor.ActorSystem

com.typesafe.config.ConfigException$Missing: No configuration setting fou
nd for key 'akka'
4

1 回答 1

1

如果您只想使用 Akka 演员,则无需传入 application.conf 设置。您可以只使用默认值。确保你的类路径上有配置库。

您没有提到您使用的是什么版本的 Akka,但是如果您使用最新的 Akka 2.2 RC,您可以使用 IndirectActorProducer 来处理弹簧接线。

请参阅这篇文章,了解如何做到这一点;http://blog.nemccarthy.me/?p=272

您还应该告诉 Spring 在 ActorSystem 上调用 shutdown 以彻底关闭。这里还有一个关于如何将 ActorSystem 集成到 Spring 或 web 应用程序的更新指南

于 2013-06-06T10:49:42.010 回答