将Akka与Spring和OSGI集成(找不到关键'akka'的配置设置)

时间:2013-05-22 17:52:03

标签: spring configuration osgi classloader akka

我在我的应用中添加了一位Akka演员,该演员适用于SpringOSGI

我尝试使用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'

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

但到目前为止,我找不到合适的stets来完成所有工作。

有人可以帮忙吗?


我的尝试:

流动this文章。

我放的时候:

<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'

1 个答案:

答案 0 :(得分:1)

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

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

请参阅此文章,了解如何执行此操作; http://blog.nemccarthy.me/?p=272

你还应该告诉Spring在ActorSystem上调用shutdown来干净地关闭。还有一个关于如何将ActorSystem集成到Spring或Web应用程序here

的更新指南