Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决;在HTTP协议[HTTP/1.10x0aHost:]中找到无效字符;?_Java_Html_Spring Boot_Tomcat - Fatal编程技术网

Java 如何解决;在HTTP协议[HTTP/1.10x0aHost:]中找到无效字符;?

Java 如何解决;在HTTP协议[HTTP/1.10x0aHost:]中找到无效字符;?,java,html,spring-boot,tomcat,Java,Html,Spring Boot,Tomcat,在我将SpringBoot项目部署到AWS EC2实例后,经常出现异常: 2020-07-31 01:56:21.487 DEBUG 7340 --- [nio-8080-exec-1] o.a.tomcat.util.net.SocketWrapperBase : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@3d89313d:org.apache.tomcat.util.net.NioChannel@1

在我将SpringBoot项目部署到AWS EC2实例后,经常出现异常:

2020-07-31 01:56:21.487 DEBUG 7340 --- [nio-8080-exec-1] o.a.tomcat.util.net.SocketWrapperBase    : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@3d89313d:org.apache.tomcat.util.net.NioChannel@11d95ea0:java.nio.channels.SocketChannel[connected local=/172.31.38.151:8080 remote=/198.98.61.139:33842]], Read from buffer: [0]
2020-07-31 01:56:21.487 DEBUG 7340 --- [nio-8080-exec-1] org.apache.tomcat.util.net.NioEndpoint   : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@3d89313d:org.apache.tomcat.util.net.NioChannel@11d95ea0:java.nio.channels.SocketChannel[connected local=/172.31.38.151:8080 remote=/198.98.61.139:33842]], Read direct from socket: [175]

2020-07-31 01:56:21.487  INFO 28770 --- [nio-8080-exec-4] o.apache.coyote.http11.Http11Processor   : Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Invalid character found in the HTTP protocol [HTTP/1.10x0aHost:]
        at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:560) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:260) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.36.jar!/:9.0.36]
        at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
它不会破坏项目,而且每个功能都运行良好。 但是我不知道它是否会在将来引起一些问题,所以我想现在就解决它


有谁能给我一些提示,说明是什么导致了这个异常吗?

我也遇到了同样的问题,发现它与8.5.44版中引入的Tomcat 8.5的更改有关。关于这一点的描述是
Fix:63578:改进对无效请求的处理,以便将400个响应返回给客户端,而不是500个响应。(标记)
()

在这种情况下,一些向HTTP GET端点发出手动请求的遗留代码会发送如下内容:

“GET”+path+“HTTP/1.1\n”

这需要更改为:

“GET”+path+“HTTP/1.1\r\n”
修复此问题


将详细信息放在此处,以便将来参考其他具有相同问题的人。Tomcat本可以修复此问题,使其更加兼容,这可能会破坏做得不正确的遗留代码。

0x0a
是一个换行符,如果这样有帮助的话。您是否正在向apache发送SSL流量,并且apache没有配置私有SSL证书来解密它?@ArunK实际上,我不太明白你说的话,因为我年纪很小。这个项目是一个用于发送电子邮件的restful api。当api收到请求时,不会发生异常。相反,它发生在没有“手动”发送请求时。我在代码中又添加了两行。希望这有助于解释这个问题。所以,为了回答您的问题,我不知道我发送的请求是否是SSL流量,但即使是SSL流量,也不会导致异常。这个项目现在在EC2上,是否可以公开访问?您是否经常收到此错误日志条目,但一切正常?如果两者都是真的,那么你是否可能只是从四处窥探的人那里得到了疑问?我有时在我的网络服务器上得到这些。他们会发送错误请求,试图查找系统中的漏洞,这会在我的日志中触发错误。你能将这些错误追溯到触发错误请求的IP吗?@DavidTran我刚刚检查了有问题请求的发送者的IP地址,但不是我。前两行代码显示IP。我认为你是对的,这个例外是由四处窥探的人的询问引起的。非常感谢。