【问题标题】:Jsoup1.7.2 isn't working google app engine 1.7.5Jsoup1.7.2 不工作谷歌应用引擎 1.7.5
【发布时间】:2013-06-24 09:08:15
【问题描述】:

我正在开发一个项目,我的应用程序托管在 Google App Engine 上并使用 Jsoup html 解析库。在我的应用程序中,我将 TaskQueues 与默认 queueu 一起使用,该队列中的唯一任务是连接到 URL 并开始解析页面。日志文件中没有出现错误或警告,它只是退出,因为它没有看到 Jsoup 解析文档的行。这是我的代码的 sn-p:

log.warning("Before connection");
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
log.warning("After connection");

TaskQueue 工作正常,我已经测试过,我 100% 确定它没有问题。 我尝试手动连接到网页并下载它,然后将其传递给 Jsoup 并开始在那里解析,连接工作正常并且网页已成功下载,但 Jsoup 无法执行任何操作。 我最大的问题是日志文件中没有错误和警告;所以我不知道这是怎么回事。

【问题讨论】:

    标签: java google-app-engine jsoup


    【解决方案1】:

    问题是我使用的 Jsoup 1.7.2 显然与 Google App Engine 不太兼容。我切换回 Jsoup 1.7.1 并解决了问题。

    【讨论】:

      【解决方案2】:

      App 引擎限制了许多类,我假设 Jsoup.connect(url) 或 .parse 方法依赖于其中一个受限制的类并引发异常。

      为了消除 Jsoup.connect 引起问题的机会,我建议您使用 App Engine URL Fetch 在 URL 处获取页面的字符串,然后使用:

      Document doc = Jsoup.parse(htmlString);
      

      但是,如果解析存在问题,那么您确实需要让错误/日志记录正常工作,并且这里没有太多信息可以提出建议。尝试将有问题的代码放在 try-catch 块中,看看是否可以捕获异常。

      另外尝试更高版本的 GAE SDK(1.8.1 是当前版本)。我之前和 GAE SDK 的 checkRestricted 方法有冲突,干扰了 Jsoup,所以 1.7.5 可能就是这种情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-02
        • 1970-01-01
        • 1970-01-01
        • 2015-01-02
        • 1970-01-01
        相关资源
        最近更新 更多