Java 在服务器启动时使用Akka播放框架调度器

Java 在服务器启动时使用Akka播放框架调度器,java,playframework,playframework-2.0,scheduled-tasks,akka,Java,Playframework,Playframework 2.0,Scheduled Tasks,Akka,问题1:我使用Play2.1.1创建了一个示例java应用程序,该应用程序启动时将启动一个调度程序。我做了一个播放编译,然后播放开始,但我得到了以下错误,请让我知道我在这里做了什么错误: (Starting server. Type Ctrl+D to exit logs, the server will remain in background) Play server process ID is 6160 @6edl861on: Cannot init the Global objectO

问题1:我使用Play2.1.1创建了一个示例java应用程序,该应用程序启动时将启动一个调度程序。我做了一个播放编译,然后播放开始,但我得到了以下错误,请让我知道我在这里做了什么错误:

(Starting server. Type Ctrl+D to exit logs, the server will remain in background)

Play server process ID is 6160
@6edl861on: Cannot init the Global objectOops, cannot start the server.

    at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:57)
    at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:51)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:18)
    at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$globalInstance(Application.scala:50)
    at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstance$lzycompute(Application.scala:383)
    at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstance(Application.scala:383)
    at play.api.WithDefaultGlobal$class.global(Application.scala:66)
    at play.api.DefaultApplication.global(Application.scala:383)
    at play.api.WithDefaultConfiguration$class.play$api$WithDefaultConfiguration$$fullConfiguration(Application.scala:80)
    at play.api.DefaultApplication.play$api$WithDefaultConfiguration$$fullConfiguration$lzycompute(Application.scala:383)
    at play.api.DefaultApplication.play$api$WithDefaultConfiguration$$fullConfiguration(Application.scala:383)
    at play.api.WithDefaultConfiguration$class.configuration(Application.scala:82)
    at play.api.DefaultApplication.configuration(Application.scala:383)
    at play.api.Application$class.$init$(Application.scala:268)
    at play.api.DefaultApplication.<init>(Application.scala:383)
    at play.core.StaticApplication.<init>(ApplicationProvider.scala:52)
    at play.core.server.NettyServer$.createServer(NettyServer.scala:228)
    at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:259)
    at play.core.server.NettyServer$$anonfun$main$5.apply(NettyServer.scala:258)
    at scala.Option.map(Option.scala:145)
    at play.core.server.NettyServer$.main(NettyServer.scala:258)
    at play.core.server.NettyServer.main(NettyServer.scala)
Caused by: java.lang.RuntimeException: There is no started application
    at scala.sys.package$.error(package.scala:27)
    at play.api.Play$$anonfun$current$1.apply(Play.scala:46)
    at play.api.Play$$anonfun$current$1.apply(Play.scala:46)
    at scala.Option.getOrElse(Option.scala:120)
    at play.api.Play$.current(Play.scala:46)
    at play.api.Play.current(Play.scala)
    at play.libs.Akka.system(Akka.java:25)
    at Global.<init>(Global.java:27)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$javaGlobal(Application.scala:30)
    at play.api.DefaultApplication.play$api$WithDefaultGlobal$$javaGlobal$lzycompute(Application.scala:383)
    at play.api.DefaultApplication.play$api$WithDefaultGlobal$$javaGlobal(Application.scala:383)
    at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:52)
Retreiver.java:

public class Retreiver extends UntypedActor {

private Logger.ALogger log = Logger.of(TweetsRetreiver.class);

@Override
public void onReceive(Object arg0) throws Exception {

    // some code here    

}

}
application.conf:

application.global=Global
问题2:此外,console或Application.log文件中都没有打印日志。我使用play.Logger包来做日志记录,这是用于登录play 2.1.1的正确包吗?请提供一个例子


谢谢。

对于日志问题,您必须使用:


对于日志记录问题,您必须使用:


解决了。线路有问题:

private ActorRef myActor = Akka.system().actorOf(
    new Props(Retreiver.class));

当我将其移动到onStart方法中时,它被正确触发。不知道为什么我不能在类级别定义这个。需要检查。

已解决。线路有问题:

private ActorRef myActor = Akka.system().actorOf(
    new Props(Retreiver.class));
当我将其移动到onStart方法中时,它被正确触发。不知道为什么我不能在类级别定义这个。我需要检查一下

private ActorRef myActor = Akka.system().actorOf(
    new Props(Retreiver.class));