在 Java 应用程序中找不到来自 atmosphere-play 的 Scala class
Scala class from atmosphere-play not found in Java application
我正在尝试将 Atmosphere 添加到 Play!Java 同事创建的项目。我正在使用 Play 2.5.4
作为第一步,我只是想添加聊天示例。我已经从 atmosphere-play 的文档中逐字复制了所有内容。
我的 build.sbt 包含以下依赖项(我也有 atmosphere-runtime,但这似乎不是必需的,实际上可能与 atmosphere-play 冲突)
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] $
我觉得我一定错过了一些非常基本的东西,但似乎无法弄清楚它是什么。任何指针将不胜感激。
谢谢!
Scala org.atmosphere.play.Router
在 2.2.0 中被 AtmosphereHttpRequestHandler.scala 取代。
您可以尝试将 Atmosphere 降级到 2.1.0 以查看它是否可以使用您现有的代码进行编译。聊天示例使用 2.1.0-SNAPSHOT 如果您现有的来源是基于它的,这可能是混淆的来源。
我正在尝试将 Atmosphere 添加到 Play!Java 同事创建的项目。我正在使用 Play 2.5.4
作为第一步,我只是想添加聊天示例。我已经从 atmosphere-play 的文档中逐字复制了所有内容。
我的 build.sbt 包含以下依赖项(我也有 atmosphere-runtime,但这似乎不是必需的,实际上可能与 atmosphere-play 冲突)
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] $
我觉得我一定错过了一些非常基本的东西,但似乎无法弄清楚它是什么。任何指针将不胜感激。
谢谢!
Scala org.atmosphere.play.Router
在 2.2.0 中被 AtmosphereHttpRequestHandler.scala 取代。
您可以尝试将 Atmosphere 降级到 2.1.0 以查看它是否可以使用您现有的代码进行编译。聊天示例使用 2.1.0-SNAPSHOT 如果您现有的来源是基于它的,这可能是混淆的来源。