在本地运行远程Java代码

时间:2016-10-28 06:58:21

标签: java groovy

我们有超过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,因为托管代码是在本地执行的,基本上它可以分解为以下步骤

  1. 远程编写代码
  2. 本地下载代码
  3. 在本地执行代码(在tomcat容器中)
  4. 知道技术是否已经存在会很棒。

    我们已经在以下行看到了一些内容,但不确定它是否比上面演示的代码有明显的优势

    def engine = new GroovyScriptEngine([tmpDir.toURI().toURL()] as URL[])          
    

0 个答案:

没有答案