使用简单连接器删除请求的Restlet?

时间:2013-05-24 13:39:23

标签: java restlet digest-authentication simple-framework

我遇到了一个非常奇怪的问题,浏览器的HTTP请求似乎被Restlet服务器使用的Simple连接器丢弃。

服务器设置:

  • Restlet 2.1.2服务器
  • Restlet-Simple扩展(随Simple 4.1.21一起提供)
  • 用于摘要式身份验证的Restlet-crypto扩展

服务器正在向浏览器提供网页,并使用javascript的XMLHttpRequest来获取更新。但是,其中一些XMLHttpRequests无法完成。 Chrome的javascript调试程序显示这些的“失败”状态; Firefox的调试器记录完成时间,没有HTTP状态代码和记录的响应。数据包嗅探器指示有问题的请求实际发送到服务器,但服务器从不响应。调试显示这些请求永远不会到达我们的服务器代码。

我已经验证了Firefox,Chrome以及IE的问题。所有三个浏览器(最新版本)都遇到了这个问题。而且,每个浏览器重复且可重复地具有完全相同请求的问题。不过,这三个浏览器的请求集合不同。

真正奇怪的是,当使用服务器的机器名称(测试在LAN上运行)时,问题确实浮出水面,但在使用机器的IP地址时却没有。从摘要切换回基本身份验证也会使问题消失,就像用Jetty替换Simple连接器一样。

我现在倾向于转向Jetty,但我仍然想知道发生了什么。有没有人见过这样的行为,或者对这里出了什么问题有所了解?

1 个答案:

答案 0 :(得分:0)

我们最近遇到了类似Restlet的问题,这也导致一些请求没有完成。问题是Restlet中的非同步地图访问,已经修复(https://github.com/restlet/restlet-framework-java/issues/753)。

如果您看到一个或多个线程导致高CPU流量,则可能表示您受此问题的影响。

如果您的XMLHttpRequests并行进入,则可能会受到影响。