0

我目前正在我的应用程序中运行一个码头网络服务器。其中一位客户正在使用 HttpPost 调用我的 this。

有时它会起作用,有时他会收到 HTTP 400 BAD 请求。

这些是日志

About to connect() to 10.184.209.142 port 8080 
Trying 10.184.209.142... 
Connected to 10.184.209.142 (10.184.209.142) port 8080 
POST /CSCIntegration HTTP/1.1
User-Agent: CSC Test
Host: 10.184.209.142:8080
Accept: */*
From: anonymous@unknown.com
Connection: close
Content-Type: text/xml; charset=utf-8
Content-Length: 440

如果我使用 Junit 运行相同的程序,我看不到任何问题。

是因为 HttpPost 中缺少斜杠吗?这个错误是由于码头问题吗?

4

1 回答 1

0

是因为 HttpPost 中缺少斜杠吗?这个错误是由于码头问题吗?

可能。这取决于两件事:

  • 无论您使用的是没有修复该问题的旧版本的 Jetty。如果您阅读链接的 bugzilla 条目,则该错误已在一年前修复。

  • 客户端是否使用缺少尾部斜杠的 URL。

如果我使用 Junit 运行相同的程序,我看不到任何问题。

目前还不清楚你在说什么。

  • 如果您说您可以手动重现问题,但不能使用 JUnit 测试(旨在重现此问题),请检查您在测试和生产系统中是否使用相同版本的 Jetty。然后检查配置差异。

  • 如果您只是说您的 JUnit 测试没有涵盖这个问题,那么解决方案是显而易见的。编写一个涵盖它的新测试!

如果这些都没有帮助,那么您应该考虑将调试器附加到您的生产服务器(哎呀!)以弄清楚实际发生了什么。

于 2013-10-29T22:40:23.527 回答