【问题标题】:Does the Neo4j webserver have a maximum url lenght for GET queries?Neo4j Web 服务器是否有 GET 查询的最大 url 长度?
【发布时间】:2016-05-17 17:45:31
【问题描述】:

我正在使用 jersey 调用接收参数的非托管扩展,当我放入数千个(极端但可能的用例)时,它会给出以下异常:

javax.ws.rs.ProcessingException: java.io.IOException: Error writing to server

就在我打电话时Response resp = invocationBuilder.get();

neo4j 网络服务器上的 URL 长度是否有限制?我读到here 说球衣没有限制。

有关堆栈跟踪的更多信息:

Caused by: java.io.IOException: Error writing to server
    at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:625)
    at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:637)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1321)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
    at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:394)
    at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285)

Here is a txt file with the query 我正在访问非托管扩展端点。

【问题讨论】:

  • 服务器说什么?
  • http.log 不显示 GET 查询
  • 我不知道 GET 查询是否永远不会到达 Web 服务器,或者它是否会被拒绝
  • 我认为它在您的 http 库/http 协议中。您发送的实际请求是什么?
  • 我添加了一个查询示例的链接

标签: java rest neo4j jersey


【解决方案1】:

186KB(您的文件)的请求对我来说似乎很大。 Jetty 默认为 8K (http://www.eclipse.org/jetty/documentation/current/configuring-connectors.html -> HTTP 配置 -> requestHeaderSize)。如果您正在使用另一个 servlet 容器,只需寻找类似的东西。

不知道neo4j能不能改。我会尝试使用较小的查询。

【讨论】:

  • 通常,请求不应该那么大。但即使是极端示例,该查询也是“可能的”,这就是我询问 neo4j Web 服务最大请求大小的原因。
  • 如果你查看 neo4j 库 ($NEO_HOME/system/lib),你会发现几个码头 jar,所以我知道 neo4j 在码头上运行。这就是我提到码头的原因。另一方面,规范没有指定最大长度并不意味着不应该存在限制(实际上它必须始终存在)。所以对于这样一个非典型的查询长度,很确定你需要更新 http servlet 配置
  • 我没有意识到 neo4j 在码头上运行。知道在哪里可以找到 servlet 配置吗?我敢打赌它在 (conf/neo4j-server.properties) 但无法找到我可以设置的可能配置值,除了已经存在的配置值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 2013-09-15
相关资源
最近更新 更多