gpt4 book ai didi

java - 如何让 Tomcat 接受 URL 中未转义的括号?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:39 29 4
gpt4 key购买 nike

我以前从未使用过Tomcat,但我最近继承了一个JSP 项目,现在我需要让它运行起来。我设法在 Eclipse 中本地安装了 Tomcat 8.0,一切正常。我还在 Ubuntu VPS 上安装了 Tomcat 8.0。该应用程序运行良好,但它处理 URL 的方式存在一个小问题。

客户端应用程序在参数中生成带有未转义方括号和大括号的 URL,如下所示:

GET /saveItems.json?items=[{%22json%22:%22here%22}]

尽管我很想更改客户端应用程序,但我做不到。我只需要让这个后端运行。

我的应用程序本地副本处理得很好。但是,在服务器上,我收到此错误:

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:286)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1504)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1460)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

我一直在寻找可能影响此设置的设置,但没有任何运气。我在这里缺少什么?

最佳答案

我通过编辑 $CATALINA_HOME\conf\server.xml 使其可行

旧值: <Connector ... protocol="HTTP/1.1"... />

新值: <Connector ... protocol="HTTP/1.1"... relaxedQueryChars='[]|{}^&#x5c;&#x60;&quot;&lt;&gt;' />

关于java - 如何让 Tomcat 接受 URL 中未转义的括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44011774/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com