如何使用自己的类加载器代替ProcessEngine中的默认类加载器?

时间:2019-06-20 09:17:59

标签: groovy classloader activiti

我正在尝试在项目中添加对Groovy Objects的支持。

在我的Groovy脚本中,我面临着GroovyCastException。

Script1.groovy

while True:
if pin15.read_digital() == 1 & pin16.read_digital() == 0:
    pin1.write_analog(180)
    pin2.write_analog(95)
    time.sleep(500)
    pin2.write_analog(90)
elif pin15.read_digital() == 0 & pin16.read_digital() == 1:
    pin1.write_analog(70)
    pin2.write_analog(180)
    time.sleep(500)
    pin2.write_analog(90)

到目前为止,它工作正常,但是后来,在另一个脚本中,我尝试分配该值。

Script2.groovy

Foo f = new Foo() // <--- Foo is a Groovy class of mine
execution.setVariable('foo', f); // <--- saving the object in Activiti execution context

GroovyCastException发生在这里。这是因为在Script1中,我调用VariableScope#setVariable()来使用Activiti类加载器加载该类,但是在Script2中,它是我的自定义类加载器,用于加载该类。

因此,我的问题是,可以使用我自己的类加载器覆盖Activiti类加载器吗?如果是,我应该遵循哪些准则?

0 个答案:

没有答案