我已经使用twitter4j(twitter4j.3.0.3.jar)实现了从twitter获取数据。 自2013年12月10日以来数据突然停止,我没有对代码进行任何更改。 当我使用logger进行调试时,它会给出异常。我在catch块中使用了以下内容来打印异常:
logger.info("twitter exception catched "+te);
logger.info("Failed to search tweets: " + te.getMessage());
===>>>捕获的异常就是这样的
13:32:25,042 INFO [TwitterIntegrationHelper] twitter exception catched api.twitter.com
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=d35baff5 or
http://www.google.co.jp/search?q=13208874
TwitterException{exceptionCode=[d35baff5-13208874 43208640-50f081d2], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.4-SNAPSHOT}
13:32:25,043 INFO [TwitterIntegrationHelper] Failed to search tweets: api.twitter.com
===>>>
与此同时,Twitter已经更改了自2013年12月10日起生效的认证。如果我在JBOSS服务器上拥有相同的认证,我该怎样才能确保。
我也尝试使用twitter4j.3.0.5.jar,这也无效。 我使用twitter4j.properties方法进行身份验证。
请帮忙。 提前谢谢。
答案 0 :(得分:2)
您(和我们)在诊断此问题时遇到问题的一个原因是您以错误的方式记录异常:
logger.info("twitter exception catched "+te);
这是在异常对象上调用toString
并将其附加到消息。
应该做的是将异常对象作为记录器调用中的参数传递; e.g。
// slf4j, log4j or logback
logger.info("twitter exception caught", te);
// java.util.logging
logger.log(Level,INFO, "twitter exception caught", te);
如果你这样做,你应该在日志中看到堆栈跟踪,这将帮助你/我们弄清楚根本原因是什么。
根据this posting,对Twitter SSL证书进行更改,您应该可以使用各种平台。但是,认证发生了变化并且您的系统在同一天停止工作这一事实强烈暗示这两个事件是相关的。
答案 1 :(得分:0)
更新安全证书,它将正常工作。