Apache + Tomcat给非浏览器代理(Struts2)提供错误500

我有一个Apache WebServer + Tomcat 7提供Struts2的网页。 当我使用任何Web浏览器时,它的工作没有问题,但是当我尝试使用W3Cvalidation器或Facebook Lint访问网页时,服务器返回错误500。

[28/Oct/2011:21:45:58 +0100] "GET /agenda7/event?id=124 HTTP/1.1" 200 9898 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22" [28/Oct/2011:21:47:16 +0100] "GET /agenda7/event?id=124 HTTP/1.0" 500 6287 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" [28/Oct/2011:21:47:42 +0100] "GET /agenda7/event?id=124 HTTP/1.1" 500 6287 "-" "W3C_Validator/1.2" 

不知何故,它就像那些服务无法理解如何使网页的获取请求没有扩展名,但是,如果是这样的话,错误应该不是404?

有什么build议么?

编辑:

刚刚用另一种映射testing了这个问题,问题依然存在:

 [28/Oct/2011:22:54:53 +0100] "GET /agenda7/event_124 HTTP/1.0" 500 6364 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" 

但是,它适用于索引页面,例如:

 [28/Oct/2011:22:59:01 +0100] "GET /agenda7/ HTTP/1.0" 200 20666 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" 

500状态码表示运行在Tomcat中的代码出错; 您应该在日志中find堆栈跟踪。

请记住,这些非浏览器的请求将以微妙的方式不同。 例如,Facebook的命中是HTTP/1.0

您的代码可能正在查找请求标头或Cookie中的某些内容,而浏览器请求中并不存在这些内容。

我打赌你的网站正在寻找标题,机器人没有设置。