tomcat8使用stock http - 错误读取请求,忽略

时间:2018-05-09 00:14:20

标签: tomcat8

在数字海洋虚拟机上存储ubun​​tu 18,股票jdk& tomcat,stock server.xml: 每次http客户端尝试连接时都会收到此信息(我在尝试使用https时遇到其他错误,因此尝试恢复为http并立即获取此信息)

系统版本:

09-May-2018 00:04:50.923 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.30 (Ubuntu)
09-May-2018 00:04:50.927 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Apr 19 2018 11:53:19 UTC
09-May-2018 00:04:50.928 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.30.0
09-May-2018 00:04:50.928 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
09-May-2018 00:04:50.929 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            4.15.0-20-generic
09-May-2018 00:04:50.929 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
09-May-2018 00:04:50.929 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-8-openjdk-amd64/jre
09-May-2018 00:04:50.929 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_162-8u162-b12-1-b12

继承错误:

09-May-2018 00:05:04.300 SEVERE [http-nio-8080-exec-1] org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored
 java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
        at org.apache.coyote.http11.Http11InputBuffer.init(Http11InputBuffer.java:688)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:672)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
        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)

09-May-2018 00:05:04.303 SEVERE [http-nio-8080-exec-1] org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun
 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)

继承了server.xml部分(再次,通用/股票)

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"    
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
-->
谷歌似乎没有这个?

1 个答案:

答案 0 :(得分:0)

似乎与此问题相同:Tomcat thowing NoSuchMethodError for Nio2Endpoint.setSocketOptions after start serving

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895866

  

发生此问题是因为   tomcat8 / 8.5.30-1是使用OpenJDK 9构建的,无法再运行   OpenJDK 8由于使用了新的java.nio.ByteBuffer方法。如果你   切换到OpenJDK 9运行Tomcat问题应该消失。我将在下次更新中使用OpenJDK 8再次运行tomcat8。

Tomcat 8.5.31已经released但尚未在ubuntu个软件包中使用。