无法初始化 class sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder - Teamcity 在重启后无法工作

Could not initialize class sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder - Teamcity doesn't work after restart

我刚刚安装了 teamcity 并且可以创建管理员帐户等,但是一旦我重新启动 teamcity 服务,我就无法再连接到 teamcity。这是我看到的错误..

有人可以透露一些有关此错误含义的信息吗?您可以提供的有关此错误的任何信息对我都有帮助。

注意:我想知道它的新设置是否有问题,所以我从头开始重新安装 teamcity 并且它工作正常,直到我重新启动服务,然后是同样的问题。

这是我尝试登录时的第一个错误:

TeamCity is running in professional mode
Super user authentication token: "123465979879879". To login as Super user use an empty username and this token as a password on the login page.
Mar 23, 2020 9:08:21 AM org.apache.tomcat.util.net.NioEndpoint setSocketOptions
SEVERE:
java.lang.ExceptionInInitializerError
        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.setIntOption(SocketAdaptor.java:294)
        at sun.nio.ch.SocketAdaptor.setReceiveBufferSize(SocketAdaptor.java:375)
        at org.apache.tomcat.util.net.SocketProperties.setProperties(SocketProperties.java:178)
        at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:662)
        at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:840)
        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 sun.net.ExtendedOptionsImpl.lambda$static[=12=](ExtendedOptionsImpl.java:48)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.net.ExtendedOptionsImpl.<clinit>(ExtendedOptionsImpl.java:47)
        ... 10 more

如果我刷新页面并尝试重试,则会看到以下错误..

Mar 23, 2020 9:08:31 AM org.apache.tomcat.util.net.NioEndpoint setSocketOptions
SEVERE:
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.setIntOption(SocketAdaptor.java:294)
        at sun.nio.ch.SocketAdaptor.setReceiveBufferSize(SocketAdaptor.java:375)
        at org.apache.tomcat.util.net.SocketProperties.setProperties(SocketProperties.java:178)
        at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:662)
        at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:840)
        at java.lang.Thread.run(Thread.java:748)

Mar 23, 2020 9:13:12 AM org.apache.tomcat.util.net.NioEndpoint setSocketOptions
SEVERE:
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.setIntOption(SocketAdaptor.java:294)
        at sun.nio.ch.SocketAdaptor.setReceiveBufferSize(SocketAdaptor.java:375)
        at org.apache.tomcat.util.net.SocketProperties.setProperties(SocketProperties.java:178)
        at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:662)
        at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:840)
        at java.lang.Thread.run(Thread.java:748)

找到解决方法。如果我用 sudo 启动 teamcity 服务,那么它工作正常。

sudo /opt/teamcity/TeamCity/bin/teamcity-server.sh start

下面问题的答案表明这是一个 mysql 问题,但我不确定如何解决 mysql 问题,答案中没有太多信息。

对我来说,我认为这意味着“您在网络接口完全联机之前tomcat开始”,因此重新启动它或更改其 systemctl 启动引导顺序可能会有所帮助。