我刚刚将我的Ubuntu发行版从16.04升级到18.04。现在Tomcat 8.5曾经工作得很好,但启动不正常。我得到的错误是
30-Apr-2018 19:24:25.195 SEVERE [http-nio-8080-exec-1] org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer; │
at org.apache.coyote.http11.Http11InputBuffer.recycle(Http11InputBuffer.java:280) │
at org.apache.coyote.http11.Http11Processor.recycle(Http11Processor.java:1709) │
at org.apache.coyote.AbstractProtocol$ConnectionHandler.release(AbstractProtocol.java:972) │
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:940) │
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) │
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) │
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) │
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) │
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) │
at java.lang.Thread.run(Thread.java:748)
有谁知道为什么会这样?
答案 0 :(得分:1)
事实证明这是Debian上游更新的问题。因此,基本上可以在Ubuntu 18.04存储库中使用的tomcat版本8.5.30-1
是在Java 9上编译的。因此,如果您仍然像我一样在Java 8上运行您的应用程序,那么您将面临此问题。