【发布时间】:2020-07-15 02:09:33
【问题描述】:
我最近开始在一个新地方工作,他们正在使用 scala 并玩这个旧版应用程序。不幸的是,这里没有人熟悉这个错误,我希望一些更有经验的 scala 人可以在这里发光。
在 Mac OS (Catalina) 上,我遇到了这些错误,但是当我将所有内容放入 linux VM 时,我可以让它工作!所以,它是特定于 OS X 的。
Java 8 SBT .13
以下是尝试运行程序时来自 SBT 控制台的几个堆栈跟踪:
[info] Loading global plugins from /Users/me/.sbt/0.13/plugins
[info] Loading project definition from /Users/me/dev/.../projectDirectory/project
[info] Set current project to RedactedProjectName (in build file:/Users/me/dev/.../projectDirectory/)
[warn] Error loading JNotify watch service: null
--- (Running the application, auto-reloading is enabled) ---
java.lang.ExceptionInInitializerError
at net.contentobjects.jnotify.macosx.JNotifyAdapterMacOSX.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at net.contentobjects.jnotify.JNotify.<clinit>(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at play.runsupport.JNotifyFileWatchService$JNotifyDelegate.ensureLoaded(FileWatchService.scala:188)
at play.runsupport.JNotifyFileWatchService$$anonfun$5.apply(FileWatchService.scala:243)
at play.runsupport.JNotifyFileWatchService$$anonfun$5.apply(FileWatchService.scala:199)
at scala.util.control.Exception$Catch$$anonfun$withTry$1.apply(Exception.scala:129)
at scala.util.control.Exception$Catch$$anonfun$withTry$1.apply(Exception.scala:129)
at scala.util.control.Exception$Catch.apply(Exception.scala:102)
at scala.util.control.Exception$Catch.withTry(Exception.scala:129)
at play.runsupport.JNotifyFileWatchService$.apply(FileWatchService.scala:199)
at play.runsupport.FileWatchService$$anon$1.delegate$lzycompute(FileWatchService.scala:80)
at play.runsupport.FileWatchService$$anon$1.delegate(FileWatchService.scala:76)
at play.runsupport.FileWatchService$$anon$1.watch(FileWatchService.scala:89)
at play.runsupport.Reloader.<init>(Reloader.scala:310)
at play.runsupport.Reloader$.reloader$lzycompute$1(Reloader.scala:210)
at play.runsupport.Reloader$.play$runsupport$Reloader$$reloader$1(Reloader.scala:210)
at play.runsupport.Reloader$.startDevMode(Reloader.scala:234)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.devModeServer$lzycompute$1(PlayRun.scala:74)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.play$sbt$run$PlayRun$$anonfun$$anonfun$$anonfun$$devModeServer$1(PlayRun.scala:74)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:100)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:53)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:237)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at net.contentobjects.jnotify.macosx.JNotify_macosx.<clinit>(Unknown Source)
at net.contentobjects.jnotify.macosx.JNotifyAdapterMacOSX.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at net.contentobjects.jnotify.JNotify.<clinit>(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at play.runsupport.JNotifyFileWatchService$JNotifyDelegate.ensureLoaded(FileWatchService.scala:188)
at play.runsupport.JNotifyFileWatchService$$anonfun$5.apply(FileWatchService.scala:243)
at play.runsupport.JNotifyFileWatchService$$anonfun$5.apply(FileWatchService.scala:199)
at scala.util.control.Exception$Catch$$anonfun$withTry$1.apply(Exception.scala:129)
at scala.util.control.Exception$Catch$$anonfun$withTry$1.apply(Exception.scala:129)
at scala.util.control.Exception$Catch.apply(Exception.scala:102)
at scala.util.control.Exception$Catch.withTry(Exception.scala:129)
at play.runsupport.JNotifyFileWatchService$.apply(FileWatchService.scala:199)
at play.runsupport.FileWatchService$$anon$1.delegate$lzycompute(FileWatchService.scala:80)
at play.runsupport.FileWatchService$$anon$1.delegate(FileWatchService.scala:76)
at play.runsupport.FileWatchService$$anon$1.watch(FileWatchService.scala:89)
at play.runsupport.Reloader.<init>(Reloader.scala:310)
at play.runsupport.Reloader$.reloader$lzycompute$1(Reloader.scala:210)
at play.runsupport.Reloader$.play$runsupport$Reloader$$reloader$1(Reloader.scala:210)
at play.runsupport.Reloader$.startDevMode(Reloader.scala:234)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.devModeServer$lzycompute$1(PlayRun.scala:74)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.play$sbt$run$PlayRun$$anonfun$$anonfun$$anonfun$$devModeServer$1(PlayRun.scala:74)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:100)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:53)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:237)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
at java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1535)
at io.netty.util.internal.ConcurrentSet.add(ConcurrentSet.java:48)
at io.netty.channel.group.DefaultChannelGroup.add(DefaultChannelGroup.java:133)
at play.core.server.NettyServer.bind(NettyServer.scala:140)
at play.core.server.NettyServer.play$core$server$NettyServer$$bindChannel(NettyServer.scala:224)
at play.core.server.NettyServer$$anonfun$1.apply(NettyServer.scala:216)
at play.core.server.NettyServer$$anonfun$1.apply(NettyServer.scala:216)
at scala.Option.map(Option.scala:146)
at play.core.server.NettyServer.<init>(NettyServer.scala:216)
at play.core.server.NettyServerProvider.createServer(NettyServer.scala:279)
at play.core.server.NettyServerProvider.createServer(NettyServer.scala:278)
at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:235)
at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:65)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.core.server.DevServerStart$.mainDev(DevServerStart.scala:64)
at play.core.server.DevServerStart$.mainDevHttpMode(DevServerStart.scala:54)
at play.core.server.DevServerStart.mainDevHttpMode(DevServerStart.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at play.runsupport.Reloader$.startDevMode(Reloader.scala:234)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.devModeServer$lzycompute$1(PlayRun.scala:74)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.play$sbt$run$PlayRun$$anonfun$$anonfun$$anonfun$$devModeServer$1(PlayRun.scala:74)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:100)
at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:53)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) java.lang.reflect.InvocationTargetException
[error] Total time: 1 s, completed Apr 2, 2020 4:14:45 PM
如果我再次sbt evicted 然后sbt run,项目启动,一切看起来都很好:
git:(master) ✗ sbt run
[info] Loading global plugins from /Users/me/.sbt/0.13/plugins
[info] Loading project definition from /Users/me/dev/.../projectDir/project
[info] Set current project to theProject (in build file:/Users/me/dev/.../projectDir/ocpapi/)
[info] Updating {file:/Users/jonbuck/dev/.../projectDir/}root...
[info] Resolving jline#jline;2.14.3 ...
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn] * com.typesafe.akka:akka-slf4j_2.11:2.4.20 -> 2.5.14
[warn] * com.typesafe.akka:akka-actor_2.11:(2.4.20, 2.5.1, 2.3.13) -> 2.5.14
[warn] Run 'evicted' to see detailed eviction warnings
[warn] Error loading JNotify watch service: null
--- (Running the application, auto-reloading is enabled) ---
[info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
(Server started, use Ctrl+D to stop and go back to the console...)
然后当我点击 localhost:9000 我开始看到这个:
[info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
(Server started, use Ctrl+D to stop and go back to the console...)
[warn] i.n.c.s.n.NioServerSocketChannel - Failed to create a new channel from an accepted socket.
java.lang.ExceptionInInitializerError: null
at sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.defaultOptions(SocketChannelImpl.java:239)
at sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.<clinit>(SocketChannelImpl.java:226)
at sun.nio.ch.SocketChannelImpl.supportedOptions(SocketChannelImpl.java:248)
at sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:166)
at sun.nio.ch.SocketAdaptor.setBooleanOption(SocketAdaptor.java:284)
at sun.nio.ch.SocketAdaptor.setTcpNoDelay(SocketAdaptor.java:319)
at io.netty.channel.socket.DefaultSocketChannelConfig.setTcpNoDelay(DefaultSocketChannelConfig.java:254)
at io.netty.channel.socket.DefaultSocketChannelConfig.<init>(DefaultSocketChannelConfig.java:54)
at io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig.<init>(NioSocketChannel.java:391)
at io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig.<init>(NioSocketChannel.java:389)
Caused by: java.lang.NullPointerException: null
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at sun.net.ExtendedOptionsImpl.lambda$static$0(ExtendedOptionsImpl.java:48)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.ExtendedOptionsImpl.<clinit>(ExtendedOptionsImpl.java:47)
at sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.defaultOptions(SocketChannelImpl.java:239)
at sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.<clinit>(SocketChannelImpl.java:226)
at sun.nio.ch.SocketChannelImpl.supportedOptions(SocketChannelImpl.java:248)
at sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:166)
[warn] i.n.c.s.n.NioServerSocketChannel - Failed to create a new channel from an accepted socket.
java.lang.NoClassDefFoundError: Could not initialize class sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder
at sun.nio.ch.SocketChannelImpl.supportedOptions(SocketChannelImpl.java:248)
at sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:166)
at sun.nio.ch.SocketAdaptor.setBooleanOption(SocketAdaptor.java:284)
at sun.nio.ch.SocketAdaptor.setTcpNoDelay(SocketAdaptor.java:319)
at io.netty.channel.socket.DefaultSocketChannelConfig.setTcpNoDelay(DefaultSocketChannelConfig.java:254)
at io.netty.channel.socket.DefaultSocketChannelConfig.<init>(DefaultSocketChannelConfig.java:54)
at io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig.<init>(NioSocketChannel.java:391)
at io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig.<init>(NioSocketChannel.java:389)
at io.netty.channel.socket.nio.NioSocketChannel.<init>(NioSocketChannel.java:98)
at io.netty.channel.socket.nio.NioServerSocketChannel.doReadMessages(NioServerSocketChannel.java:145)
[warn] i.n.c.s.n.NioServerSocketChannel - Failed to create a new channel from an accepted socket.
java.lang.NoClassDefFoundError: Could not initialize class sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder
at sun.nio.ch.SocketChannelImpl.supportedOptions(SocketChannelImpl.java:248)
at sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:166)
at sun.nio.ch.SocketAdaptor.setBooleanOption(SocketAdaptor.java:284)
at sun.nio.ch.SocketAdaptor.setTcpNoDelay(SocketAdaptor.java:319)
at io.netty.channel.socket.DefaultSocketChannelConfig.setTcpNoDelay(DefaultSocketChannelConfig.java:254)
at io.netty.channel.socket.DefaultSocketChannelConfig.<init>(DefaultSocketChannelConfig.java:54)
at io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig.<init>(NioSocketChannel.java:391)
at io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig.<init>(NioSocketChannel.java:389)
at io.netty.channel.socket.nio.NioSocketChannel.<init>(NioSocketChannel.java:98)
at io.netty.channel.socket.nio.NioServerSocketChannel.doReadMessages(NioServerSocketChannel.java:145)
【问题讨论】:
-
我已经尝试更改我正在使用的 JVM,甚至擦除我的磁盘并降级回 Mojave,我认为因为本机方法没有签名,所以它们不能执行。我还是迷路了。
-
这使用的是什么版本的 Play?我有一个类似的,如果不是相同的堆栈跟踪,还不能弄清楚问题是什么。我在玩
2.6.20。 -
我现在已经设法通过删除 ~/.ivy2 并重新开始来重新创建您的第二个堆栈跟踪。我很想知道您尝试过哪些 JVM。我一直在使用采用 OpenJDK 1.8.0_242。我遇到了建议尝试 232 的 this post,突然问题对我来说消失了。
-
使用 play 2.5.18
标签: scala jvm sbt netty macos-catalina