我们有超过10000个用户使用的客户端服务器应用程序。这些设置中的每一个都在客户基础架构上部署(使用tomcat服务器)。这些环境只能按需升级。在这样的eco系统中,有一种方法可以以编程方式从集中位置安全地部署远程代码。 我们正在做类似跟进的事情。可以在用户位置编写和部署以下代码,以动态下载和加载类。
ClassLoader cl = new ClassLoader() {};
CachedCompiler cc = new CachedCompiler(null, null);
//this javaCode comes as a string from a URL(remote location)
Class aClass = cc.loadFromJava(cl, className, javaCode);
Object instance = aClass.newInstance();
Method method = instance.getClass().getMethod("execute");
method.invoke(instance);
鉴于反射的性质,我们认为这不是在Java环境中运行远程代码/脚本的好方法。而且,这不是RMI或EJB,因为托管代码是在本地执行的,基本上它可以分解为以下步骤
知道技术是否已经存在会很棒。
我们已经在以下行看到了一些内容,但不确定它是否比上面演示的代码有明显的优势
def engine = new GroovyScriptEngine([tmpDir.toURI().toURL()] as URL[])