【问题标题】:xpages: how to use 3rd party java librariesxpages:如何使用 3rd 方 java 库
【发布时间】:2015-08-21 07:53:00
【问题描述】:

我想在我的 xpage 应用程序中使用第 3 方 java 库。 我在网上找到了一些说明,说明如何使用 jar。 谁能告诉我我在用一个简单文件夹中的 Java 代码做什么?

我想使用JsonPath

【问题讨论】:

    标签: java xpages


    【解决方案1】:

    我想以“对不起”作为回答的开头。这种事情变得比它应该的更复杂。

    在您的问题的简单情况下 - 如何将源形式的 Java 项目添加到我的 NSF 中 - 这还不错。我会在 Project Explorer 中创建一个新的源文件夹,比如“src-jsonpath”并从文件系统导入源。但是,在这种情况下,这不会很好。

    问题在于 JsonPath 有很多依赖项,您还需要跟踪这些依赖项。它在 Maven 中可用,但是,由于 Designer 对 Maven 一无所知,因此存在一些问题。

    我发现这种技术的最简单变体是通过https://stackoverflow.com/a/15484858/858171,它建议下载库及其各种依赖项的两步过程,而无需创建实际的 Maven 项目。它(我现在将)假设您在系统上设置了 Maven - 如果您没有,您可以在 maven.apache.org 上找到一些好的说明。

    另一个主要假设是您正在使用或可以使用 Mac 或其他类似 Unix 的系统,这两行应该将库下载到当前目录:

    mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=com.jayway.jsonpath:json-path:2.0.0:jar -DoutputDirectory=.
    mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=com.jayway.jsonpath:json-path:2.0.0:pom -DoutputDirectory=.
    mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy-dependencies -f json-path-2.0.0.pom -DoutputDirectory=.
    

    第一行实际上检索 JsonPath 库的 jar。第二个然后检索它的 pom 文件(项目描述符) - 该文件对您的需求目录没有用,但下一步需要。第三行然后使用这个 pom 文件将项目的依赖项(及其依赖项的依赖项)下载到当前目录。

    完成此操作后,您最终会得到一堆 jar 文件,然后您可以将它们放入 NSF 或(可能更好,有这么多)到文件系统中。 最好的路线是将它们变成一个 XSP OSGi 库,但这是一个更大的主题,我最终应该在博客中讨论。

    【讨论】:

    • 感谢您的全面回答。同时,我也找到了对应的Maven-repository,它提供了jar文件和对应依赖的引用。我还尝试手动接管我 NSF 中的罐子。但是我的测试触发了 403 错误。所以我忘记了一些东西......我需要仔细看看Maven。由于我可能需要一些时间才能做到这一点,所以我决定接受你的回答,因为它把我推向了正确的方向。期待您的下一篇博文!
    • 如果你想将 jar 包在 OSGi 插件中,那么我已经写了几篇关于如何做到这一点的文章 :-) dalsgaard-data.eu/blog/wrap-an-existing-jar-file-into-a-plug-in。同意 Jesse 的观点,这是一种更好的方法。
    • 我已经克服了第一个障碍:安装了 Maven,并设置了所需的设置。已配置代理。使用提供的命令,我得到了依赖的 jars!伟大的!当然,我什至发现的不止这些。不幸的是,我仍然有 403 错误。我是否必须设置一些安全设置才能使用外部 jar?
    • 不是天生的,但给定的库可能会做一些需要安全更改(通常是反射)的事情。如果您的服务器上没有来自 OpenNTF 的 XPages Log Reader,我强烈建议您使用它来获取有关错误的信息。
    • 我明白了。正如预期的那样,在我更改了 java.policy 文件(权限 java.security.AllPermission;)后,我的测试代码运行良好。现在我将尝试将 jar 打包到 OSGI 插件中以解决安全问题。感谢大家的提示!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多