我维护这个Java开源项目,它将Lotus Notes日历条目与Google Calendar同步: https://sourceforge.net/projects/lngooglecalsync/
2013年6月6日左右,大约有8位用户在10次尝试中有9次开始出现以下错误。请注意,响应的HTML部分包含消息“无法访问您请求的日历”。 HTML的其余部分只显示“Google”一词的彩色版本。
com.google.gdata.util.ServiceException: Internal Server Error
<html><head><meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>Error</title>
<style type="text/css">body {font-family: arial,sans-serif}</style></head>
<body text="#000000" bgcolor="#ffffff"><table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td rowspan="3" width="1%" nowrap><b><font face="times" size="10"><font color="#0039b6">G</font> <font color="#c41200">o</font> <font color="#f3c518">o</font> <font color="#0039b6">g</font> <font color="#30a72f">l</font> <font color="#c41200">e</font></font> </b></td>
<td> </td></tr>
<tr><td bgcolor="#3366cc"><font face="arial,sans-serif" color="#ffffff"><b>Error</b></font></td></tr>
<tr><td> </td></tr></table>
<blockquote>Cannot access the calendar you requested</blockquote>
<p></p>
<div style="background:#3366cc; width:1px; height:4px"></div></body></html>
以下是导致异常的getFeed()调用:
try {
calendars = service.getFeed(mainCalendarFeedUrl, CalendarFeed.class);
} catch (com.google.gdata.util.ServiceException ex) {
calendars = null;
throw ex;
}
在6月6日之前,这个问题不存在。大约在同一时间,Google将日历更改为存储空位置值的方式。以前他们使用null,现在他们使用“”。这最初打破了我的代码,但现在我处理了这两种情况。
此外,用户报告说他已成功运行Coldfusion脚本超过一年,在私人Google日历链接上执行简单的http get操作。该脚本现在间歇性地失败并遇到同样的问题。
根据所有这些信息,我认为谷歌已经改变了一些现在导致这种间歇性问题的东西。大多数用户(包括我)都没有看到这个例外,但我想为遇到问题的人找到解决方案。
有关如何诊断或解决问题的任何想法?
更新:2013年12月12日,遇到此问题的所有用户都表示已停止。因此,我们假设问题出在谷歌方面,并且已经修复。