来自大气的Scala类在Java应用程序中找不到

时间:2016-07-13 15:31:10

标签: java scala playframework-2.0 atmosphere

我试图将气氛添加到游戏中!由同事创建的Java项目。我正在使用Play 2.5.4

作为第一步,我只是尝试添加聊天示例。我已经从大气戏剧的文件中逐字记录了所有内容。

我的build.sbt包含以下依赖项(我也有氛围运行时,但似乎并不需要,事实上可能与大气游戏冲突)

libraryDependencies ++= Seq(
 // javaJdbc,
  cache,
  javaWs,
 ... unrelated stuff ...
  "org.atmosphere.client" % "javascript" % "2.3.2",
   "org.atmosphere" % "atmosphere-play" % "2.3.0"
)

在Global.java中(是的,我知道,但Play文档说你需要它来支持onRouteRequest):

package controllers;

import org.atmosphere.play.AtmosphereCoordinator;
import play.Application;
import play.GlobalSettings;
import play.api.mvc.Handler;
import play.mvc.Http.RequestHeader;
import org.atmosphere.play.Router;
import controllers.Chat;

import static org.atmosphere.play.AtmosphereCoordinator.*;

public class Global extends GlobalSettings {

    @Override
    public void onStart(Application application) {
        instance().discover(Chat.class).ready();
    }

    @Override
    public void onStop(Application application) {
        instance().shutdown();
    }

    @Override
    public Handler onRouteRequest(RequestHeader request) {
        return Router.dispatch(request);
    }

}

我编译时:

[coaster-ui] $ compile
[info] Updating {file:/stuff/web/react/}root...
[info] Resolving net.contentobjects.jnotify#jnotify;0.94-play-1 ...
[info] Done updating.
[info] Compiling 8 Scala sources and 9 Java sources to /stuff/web/react/target/scala-2.11/classes...
[error] /stuff/web/react/app/controllers/Global.java:14: error: cannot find symbol
[error] import org.atmosphere.play.Router;
[error]                           ^
[error]   symbol:   class Router
[error]   location: package org.atmosphere.play
[error] 1 error
[error] (compile:compile) javac returned nonzero exit code
[error] Total time: 6 s, completed Jul 13, 2016 11:22:07 AM
[coaster-ui] $ 

我觉得我必须遗漏一些非常基本的东西,但似乎无法弄清楚它是什么。任何指针都将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

Scala org.atmosphere.play.Router已被2.2.0中的AtmosphereHttpRequestHandler.scala取代。

您可以尝试将Atmosphere降级到2.1.0以查看它是否与您现有的代码进行编译。聊天示例使用2.1.0-SNAPSHOT,如果您的现有来源基于此,则可能会引起混淆。