我刚刚安装了Eclipse标准4.4 Luna,在安装了Scala IDE和我得到的朋友之后
JDT Weaving is currently disabled. The Scala IDE needs JDT Weaving to be active,
or it will not work correctly.
Activate JDT Weaving and Restart Eclipse? (Highly Recommended)
[OK] [Cancel]
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?
现在我对此错误消息的评论
https://groups.google.com/forum/#!msg/scala-ide-user/7GdTuQHyP4Q/aiUt70lnzigJ
afterRender使用模板绑定,但在将模板转换为组件后,似乎没有任何使用方法afterRender.我试过寻找一个使用afterRender但无法找到任何东西的组件的例子.
我已对此进行了编辑,以使原始帖子的内容保持最新。
我想尝试JEP 428:结构化并发(孵化器)中定义的新Project Loom功能
我的 pom.xml 中有
<properties>
<maven.compiler.executable>${env.JAVA_HOME}/bin/javac</maven.compiler.executable>
<maven.compiler.source>19</maven.compiler.source>
<maven.compiler.target>19</maven.compiler.target>
</properties>
. . .
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<compilerArgs>
<arg>--add-modules=jdk.incubator.concurrent</arg>
<arg>--enable-preview</arg>
</compilerArgs>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
其中JAVA_HOME指向 JDK 19,但是当我尝试通过构建时,mvn compile我得到
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Structured.java:3:20: error: package jdk.incubator.concurrent is not visible
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Structures.java:3:20: error: package jdk.incubator.concurrent is not visible
. . .
Run Code Online (Sandbox Code Playgroud)
很多人在这方面帮助了我,显然他们可以让它发挥作用,但由于某种原因,我无法开始mvn compile工作。
不过,我可以让代码在 IntelliJ 下编译和运行。当我可以让 IntelliJ 编译时,我从来没有无法让 Maven 编译。通常,情况恰恰相反。
在Java 9中,您可以使用创建JAR文件
jar --create --file=mlib/com.greetings.jar --main-class=com.greetings.Main -C mods/com.greetings .
Run Code Online (Sandbox Code Playgroud)
其中包含将MainClass属性添加到.jar文件中的module-info.class文件的副作用.
是否有任何插件支持这个,或者我是否需要直接调用Java 9'jar'命令?
这是提出这些问题的正确论坛,还是有更好的地方?
干杯,埃里克
val behavior: Behavior[Message] = Behaviors.setup {
actorContext ?
logger.info("starting...")
implicit val actorSystem = actorContext.system.asInstanceOf[ActorSystem]
implicit val materializer = ActorMaterializer()(actorContext.asInstanceOf[ActorContext])
implicit val executionContext = actorContext.executionContext
val route =
path("hello") {
get {
complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Say hello to akka-http</h1>"))
}
}
val bindingFuture = Http().bindAndHandle(route, "localhost", 8888)
Run Code Online (Sandbox Code Playgroud)
可以编译,但是当我运行代码时,我得到了
20:44:22.586 [Leaderboard-akka.actor.default-dispatcher-3] INFO net.kolotyluk.leaderboard.service.REST$ - starting...
[ERROR] [04/02/2018 20:44:22.592] [Leaderboard-akka.actor.default-dispatcher-2] [akka://Leaderboard/user/Http]
akka.actor.typed.internal.adapter.ActorSystemAdapter cannot be cast to akka.actor.ActorSystem
akka.actor.ActorInitializationException: akka://Leaderboard/user/Http: exception during creation
Run Code Online (Sandbox Code Playgroud)
有一些简单的解决方案吗?如何提供Http()ActorSystem所需的资源?
Akka Typed似乎不能与其他Akka库一起使用
package net.kolotyluk
package object leaderboard {
def randomLong: Long = {
val random = scala.util.Random
random.setSeed(System.nanoTime)
random.nextLong
}
}
Run Code Online (Sandbox Code Playgroud)
无法编译
[error] D:\Users\erick\repos\leaderboard\src\main\scala\net\kolotyluk\leaderboard\package.scala:7:24: object util is not a member of package net.kolotyluk.scala
[error] val random = scala.util.Random
[error] ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
Run Code Online (Sandbox Code Playgroud)
我怀疑问题是我net.kolotyluk.scala.extras在其他地方定义了包。为什么 Scala 找不到scala.util.Random?这看起来像是 Scala 编译器或 Scala 语言本身的缺陷。
有没有办法导入/指定绝对包名称而不是此处似乎使用的相对包名称?
正如https://docs.scala-lang.org/tour/packages-and-imports.html中提到的那样,使用import __root__.scala.util.Random似乎不起作用,因为
[error] D:\Users\erick\repos\leaderboard\src\main\scala\net\kolotyluk\leaderboard\package.scala:3:8: not found: object __root__
[error] import __root__.scala.util.Random
[error] ^
Run Code Online (Sandbox Code Playgroud) 我已经尝试了几个小时来配置monit,以便可以从Web浏览器从http://:2812远程访问它,但是它总是超时。我的Nexus在http :: 8081的同一实例上运行,因此我知道基本的连接方式有效:我的monitrc包含
set httpd port 2812
# use address localhost # only accept connection from localhost
allow localhost # allow localhost to connect to the server and
allow admin:monit # require user 'admin' with password 'monit'
allow 50.67.165.130 # remote host
Run Code Online (Sandbox Code Playgroud)
我试图从哪里连接远程主机。还有其他一些特殊的魔术可以远程访问monit httpd吗?
奇怪的是,这必须如此艰巨。
我正在处理 java.nio.file.AccessDeniedException 问题。
我有一个 Scala 程序,如果我这样做:
java.nio.file.Files.delete(FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]\1977 - Foreigner\03 - Starrider.mp3"""))
Run Code Online (Sandbox Code Playgroud)
一切正常。我有一些代码
def delete(path : Path) {
try {
println("deleting " + path)
java.nio.file.Files.delete(path)
} catch {
case exception: Exception => System.err.println(exception)
}
}
val google1 = FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive\Music\Downloaded\Foreigner [Discography HQ]""")
val google2 = FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]""")
val duplicates = TraversablePaths(List(google1, google2)).duplicateFilesList
println("deleting duplicate files")
duplicates.foreach(_.filter(!_.startsWith(google1)).foreach(delete))
Run Code Online (Sandbox Code Playgroud)
但是当我尝试删除同一个文件时,我得到
java.nio.file.AccessDeniedException: D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]\1977 - Foreigner\03 - Starrider.mp3
Run Code Online (Sandbox Code Playgroud)
我能说的最好的是 JVM 要么锁定了文件,要么锁定了文件所在的目录,但我不知道在哪里。检查文件是否相同的代码看起来像
def identical(file1 : Path, …Run Code Online (Sandbox Code Playgroud) 我知道Akka演员不应该阻止以保持对消息的反应,但是如何构建我的服务,我想要监视一个无限期运行的进程?
例如,我们使用的是Amazon Kinesis Connector库.您创建一个具有给定配置的连接器,该连接器继承自Runnable,然后调用Run()方法.连接器只是无限期地运行,从Kinesis中提取数据,并将其写入Amazon S3.实际上,如果runnable返回,那么这是一个错误,需要重新启动.
方法(1)将简单地为每个运行的Kinesis Connector创建一个子actor,如果Run()方法返回,则抛出异常,Supervising Actor会注意到异常并重新启动子actor.每个线程每个子actor的一个连接器.
方法(2)将用于子actor将Kinesis Connector包装在Future中,如果将来返回,则actor将在另一个Future中重新启动Connector.可以想象,单个actor可以管理多个连接器,但这是否意味着每个Future都在一个单独的线程中执行?
哪种方法最符合Akka的理念,还是人们推荐其他方法?一般情况下,我想捕获任何连接器的任何问题,并重新启动它.总共不会有超过六打连接器并行运行.
我有以下代码
lazy val restEndpoint = context.actorOf(Props[RestEndpoint], "RestEndpoint")
Run Code Online (Sandbox Code Playgroud)
但是,我想动态加载actor,如果它存在的原因有以下几点:
是否有一些'简单'的方式来反思这样做?请不要指出Scala中有关反射的文档,因为那里没有什么容易的.如果有Scala Reflection for Dummies讨论,我会很感激.
一个工作的例子将不胜感激.
scala ×5
akka ×3
java ×3
akka-http ×1
akka-typed ×1
eclipse-jdt ×1
filelock ×1
java-19 ×1
java-9 ×1
jvm ×1
knockout.js ×1
maven ×1
maven-3 ×1
monit ×1
package ×1
project-loom ×1
scala-ide ×1