我维护这个 Java 开源项目,它将 Lotus Notes 日历条目与 Google 日历同步: 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 年 8 月 12 日,所有遇到此问题的用户都表示它停止了。因此,我们假设问题出在 Google 一方,并且已得到解决。