【问题标题】:Unable to properly link external Java library in Eclipse无法在 Eclipse 中正确链接外部 Java 库
【发布时间】:2011-10-31 08:06:39
【问题描述】:

我一直在努力将 this Netflix Java Client 正确集成到一个非常基本的 Eclipse Java Web 项目中来访问 Netflix 的 API。

每当我尝试发布引用此库的任何内容时,都会收到类似以下的错误,表明无法解析我尝试使用的外部库中的类的类型。

2011 年 8 月 20 日上午 11:48:42 org.apache.catalina.core.StandardWrapperValve 调用 严重:servlet [jsp] 在路径 [/OSNet03] 的上下文中的 Servlet.service() 引发异常 [无法为 JSP 编译类:

jsp文件中的第19行发生错误:/index.jsp NetflixAPIClient 无法解析为类型

16: String myConsumerKey = new String("cefjbgekg7566cqrp2atua2n");

17: String myConsumerSecret = new String("redacted");

18:

19: NetflixAPIClient apiClient = new NetflixAPIClient(myConsumerKey, myConsumerSecret);

20:字符串 uri = APIEndpoints.MOVIE_URI + "/2361637";

21: 字符串详细信息 = null;

在文件的顶部,我包含了正确的类目录,如下所示:

<%@ page import="com.netflix.api.*" %>
<%@ page import="com.netflix.api.client.*" %>
<%@ page import="com.netflix.api.client.dal.*" %>

而且我没有收到来自 Eclipse 的任何错误,告诉我它无法解析这些类。只有在我将它发布到服务器后才会出现此错误。

我尝试使用 jre7 和 jdk1.7.0 进行构建。我正在尝试使用的库包括来自 Java v6 和 v5 的元素。

我通过使用 Maven 构建库并将目录放在我的 WEB-INF/lib 文件夹中,然后在我的构建路径中包含 jar netflix-client-2.3-SNAPSHOT.jar 来包含该库。

我已经在网上寻找可能的原因,并尝试了我找到的所有规定的解决方案,但都没有奏效。

您可能会说我对使用 Eclipse 和 Java Web 编程很陌生,但我正在尽我所能解决问题。

【问题讨论】:

    标签: eclipse maven netflix java


    【解决方案1】:

    检查是否自动构建:P。如果不尝试打开它一次。

    如果是,则检查项目构建路径并查找库。检查是否有正确的罐子。

    还要检查您的 jar 是否未损坏。

    这些都是常见问题,等待sm1 else回答。

    您也可以尝试搜索无法使用 Ctrl+Shift+R 解析的资源类,并查看该类是否出现。

    如果你不明白,那么只需提取 jar 并查看该类是否真的存在。

    【讨论】:

    • 自动构建已打开,据我所知,jar 似乎没有损坏,并尝试使用下载的二进制文件和我自己构建的版本(没有构建错误)从源使用 Maven,仍然是同样的问题。当我 Ctrl+Shift+R 时,这些类也都在那里,并且 Eclipse 可以识别所有内容,只是我的 Tomahawk Server 似乎没有。
    • 那根本不是日食问题。问题出在为您的战斧服务器定义的类路径中。它是否接受您放入 web-inf/lib 中的任何其他库?您可能想检查战斧中部署的位置,如果它不一样,然后检查 jar 是否存在。
    • 有趣,我需要做些什么来特别配置 Tomahawk 服务器以接受这个外部库吗?我的印象是,当我在 Eclipse 中“构建为服务器”时,Eclipse 所说的服务器可以运行的内容与服务器实际可以运行的内容之间没有真正的区别。我想那太天真了。我正在使用的其他外部库位于元数据/插件中,它们工作正常。我会尝试将 netflix 库也放在那里,看看会发生什么。
    • 我告诉 eclipse 将库发布到服务器,但我不知道如何检查它是否真的在那里。我认为这不能解决问题,但也许我遗漏了有关如何正确发布依赖项的内容?
    • 只需将 jar 添加到与其他 jar 相同的位置即可。您至少不会被此问题阻止。
    猜你喜欢
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多