Ibm mobilefirst IBM MobileFirst:在命令行构建期间使用外部jar文件

Ibm mobilefirst IBM MobileFirst:在命令行构建期间使用外部jar文件,ibm-mobilefirst,mobilefirst-server,mobilefirst-cli,Ibm Mobilefirst,Mobilefirst Server,Mobilefirst Cli,我们正在尝试使用org.JSON.JSONObject库在适配器端进行一些密集的JSON处理。我们有处理从http适配器接收的数据的Java类 mobilefirst 6.3.0并使用cli 20150701构建 (最近的一次) 从eclipse mobilefirst studio环境构建时,此JSON引用没有问题 我们正在ubuntu linux 14.04中构建这个环境。执行时引用org.JSON.JSONObject..x.jar文件时出错 mfp start or mfp build

我们正在尝试使用org.JSON.JSONObject库在适配器端进行一些密集的JSON处理。我们有处理从http适配器接收的数据的Java类

mobilefirst 6.3.0并使用cli 20150701构建

(最近的一次)

从eclipse mobilefirst studio环境构建时,此JSON引用没有问题

我们正在ubuntu linux 14.04中构建这个环境。执行时引用
org.JSON.JSONObject..x.jar
文件时出错

mfp start or mfp build or mfp deploy
在mfp启动、mfp构建或mfp部署期间,是否有方法将此jar文件作为类路径引用

我们需要像这样的东西

mfp -classpath "path/to/json.jar" build

请提供帮助。

适配器使用的JAR应添加到文件夹库中项目的服务器目录中。构建项目时(在Studio中或由ant任务生成),它们将包含在您的项目WAR文件中,并且当您部署该WAR时,它将对适配器可见。

事实证明,CLI尚未识别放入项目服务器/lib文件夹中的JAR。为了使此工作正常,您可以对以下文件进行简单编辑:

[cli安装文件夹]/mobilefirst cli/node\u modules/generator worklight server/lib/build.xml

在第123行或其附近添加第三个fileset元素,如下所示:

<!-- Classpath for server runtime libraries used when building the WAR -->    
<path id="server-classpath">
    <fileset dir="${worklight.jars.dir}" includes="worklight-jee-library.jar" />
    <fileset dir="${worklight.server.install.dir}/wlp/dev" includes="**/*.jar" />

    <!-- add server/lib folder to classpath -->
    <fileset dir="${worklight.app.dir}/../server/lib" includes="**/*.jar" />
</path>


之后,运行“mfp start”(如果服务器已经运行,则运行“mfp restart”)将使用添加到类路径中的服务器/lib文件夹中的任何JAR编译自定义Java代码。

我同意@bjustin_ibm。谢谢你。虽然上述方法可行,但还有另一种方法

另类黑客

只需将必需的.jar添加到以下位置,它就会在mfp启动期间添加到类路径中

/home/instanceubuntu/.ibm/mobilefirst/6.3.0/server/wlp/dev/spi/third-party

此解决方案更简单,实际上不必维护build.xml文件


希望这能有所帮助。

不太理解。您的应用程序是在构建和部署后使用jar还是在构建/部署过程中的某个自定义步骤使用jar?您在应用程序(android)或适配器中的何处使用/引用此jar?它在适配器端。@djna这是在运行时在适配器端使用的。我们编写的java类使用这种方法来处理适配器的JSON输出。看看这种方法是否适用于您:确实如此,但情况是我们必须再次在ubuntu服务器中构建和部署。那么它就不能选择这个罐子了。谢谢你的回复,但是你认为我在下面发布的解决方案好吗?有任何注释吗?是的,这将起作用,因为“wlp/dev/”文件夹已在类路径上。不过,这种方法也有一些缺点。1.这将影响部署到此服务器的每个项目。如果你只有一个项目,这实际上不会是一个问题。2.我们通常认为在//IBM下的MauliListServer内容有点短暂。某些情况会导致这些文件被CLI删除或覆盖-这意味着在正常使用CLI的过程中,您可能会丢失其中的更改,此时此黑客可能会停止工作。如果您能提供建议,这些问题会是什么?很抱歉,在我完成键入之前提交了我的评论;)我已经更新了原始评论,指出了使用这种方法的具体缺点。@bjustin\u这很有意义。再次感谢您的分享。你好:)