我正在运行调用Gmail API的自动化测试。
我要说的是(你准备好了吗?):它在我的机器上工作。
但是,当我通过Jenkins运行相同的测试时,我得到一个SocketTimeoutException: connect timed out
错误。
一些地址已添加到代理的白名单中(但没有任何改进):
accounts.google.com
gmail.googleapis.com
在它失败的地方:
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
String APPLICATION_NAME = "TEST";
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
// This one runs ok
Gmail service = new Gmail.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
.setApplicationName(APPLICATION_NAME)
.build();
// It fails here:
ListMessagesResponse response = service.
users().
messages().
list("me").
setQ("subject:" + messageTitle).
execute();
如有任何帮助,将不胜感激:)
1条答案
按热度按时间np8igboo1#
我们终于找到了解决这个问题的办法。不出所料,这是一次代理发行。我的虚拟机在某个公司代理后面运行,而Jenkins示例在*另一个后面运行。
代替
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
我把一个定制的
final NetHttpTransport HTTP_TRANSPORT = (NetHttpTransport) newProxyTransport();
其定义如下:
然后,我从Jenkins使用
-DjenkinsMode=true
运行Maven命令。