0

背景/示例(但问题可能比这更广泛):

我正在尝试编写一个访问 Google AppEngine 服务器的 Java 应用程序。要为此设置项目,我按照此处接受的答案中概述的步骤操作:

开发使用 AppEngine 数据库的 Java 应用程序

HttpURLConnection我现在遇到了一个问题,我试图在 Java 客户端应用程序中执行-request(即不在 AppEngine 服务器代码中),但 Google 的 AppEngine 库似乎已经用它自己的urlFetch()-执行。这导致我收到以下错误:“未找到 API 包 'urlfetch' 或调用 'Fetch()'。”。

实际问题:

什么决定了 Java 在库中查找所需的类实现的顺序?有没有办法修改这个顺序(特别是在 Eclipse 中),以便实际的 JRE 函数优先于也需要的第三方库。或者上面给出的示例中的实现可能有什么特殊情况Url,不能通过指定库订单来解决?

更新:

原来我看到的问题与加载类的顺序无关。AppEngine 服务器代码在执行期间而不是在库加载时显式调用setContentHandlerFactory(...)来注册自己的处理程序(请参阅此处以获取对此特定问题的修复)。所以,虽然我的“实际问题”可能仍然存在,但我实际上还没有遇到一个重要的场景......

4

2 回答 2

1

您可能必须定义一个自定义ClassLoader.

另外,看看这个答案

于 2013-08-02T13:41:43.043 回答
1

在 Eclipse 中,您可以调整类路径顺序。右键单击您的项目,选择 Properties,Java Build Path,然后单击“Order and Export”选项卡。但是,当然,在 Eclipse 之外运行时,这不会影响您的程序。

于 2013-08-02T15:53:04.660 回答