2016-11-04 39 views
0

据我们可以通过属性文件利用属性module.classloader动态加载模块在创建时罐子的文档:春XD动态模块的ClassLoader问题

http://docs.spring.io/spring-xd/docs/1.3.1.RELEASE/reference/html/#module-class-loading

我花了两天时间试图测试这个功能。这是行不通的。选项module.classloader似乎被简单地忽略

我没有找到名为module.classloader在XD代码任何字符串。但我发现一个又一个在这个类叫做module.classpath

https://github.com/spring-projects/spring-xd/blob/master/spring-xd-module/src/main/java/org/springframework/xd/module/options/ModuleUtils.java

在上面类的代码似乎文档匹配。但不幸的是,它不工作。我的课都没有发现,我得到抛出java.lang.ClassNotFoundException

我有一个名为dir4jars模块选项,其中我把罐子在创建时加载(当我发出工作创造--name XX --defintion .. )。这是一个目录,我已经测试了以下可能性,既module.classpathmodule.classloader

module.classpath=${dir4jars}/*.jar 
module.classloader=${dir4jars}/*.jar 
. 
. 
job create --name jobName --definition "myJobModuleName --dir4jars=C:/ELS/Flash/libxd" --deploy 

and 

job create --name jobName --definition "myJobModuleName --dir4jars=file:C:/ELS/Flash/libxd" --deploy 

我需要dir4jars是绝对的和外部的XD回家。 所以我的问题:

  • 什么是正确的选择用于这种动态负载? module.classpath or module.classloader
  • 我如何设置绝对目录,如上所述?

非常感谢。

回答

0

我认为它必须是module.classpathmodule.classloader在文档中看起来像一个错误。当您明确使用module.classpath=file:C:/ELS/Flash/libxd时,这是否工作?

附注:请考虑使用Spring Cloud Data Flow这是Spring XD的继任者。

+0

这个特性在XD中是非常糟糕的:-(当你读代码的时候没有日志,当我的问题发生的时候容器停止运行最糟!关于Spring云数据流它尚未投入使用,我们需要掌握其他技术使其运行......它脱离了我的项目环境...... – Fado

+0

Spring Cloud Data Flow用于生产,1.0 GA于2016年7月发布。我认为您不必掌握其他技术以使Spring Cloud Data Flow运行。本文档可帮助您:http://docs.spring.io/spring-cloud-dataflow/docs/1.1.0.BUILD-SNAPSHOT/reference/html/#migration-guide –