2010-03-17 3 views
0

J'essaie d'utiliser JRuby dans une application personnalisée, et je ne semble pas pouvoir charger l'objet JRubyEngine. Ma classe ressemble fonctionnellement similaire à ceci:Impossible de charger JRubyEngine car org.apache.bsf.util.BSFEngineImpl introuvable

public class ScriptEngine { 

    private static ScriptEngine engine = new JRubyEngine(); 

    public void run(final String script, final Map<String,Object> input) { 
     final Bindings context = engine.createBindings(); 

     context.putAll(input); 

     try { 
      engine.eval(script,context); 
     } catch (ScriptException e) { 
      log.error("Failed to execute script: "+getScript(),e); 
     } 
    } 

} 

Cependant, cette compilation échoue à la plainte:

[javac] Compiling 486 source files to /workspace/myProject/build/src 
[javac] /workspace/myProject/src/net/ceilingfish/ScriptEngine.java:31: cannot access org.apache.bsf.util.BSFEngineImpl 
[javac] class file for org.apache.bsf.util.BSFEngineImpl not found 
[javac]  private static ScriptEngine engine = new JRubyEngine(); 
[javac]          ^
[javac] 1 error 

Quelqu'un at-il des idées sur l'endroit où je peux obtenir cette classe de? Ou s'il y a une meilleure façon d'instancier un objet JRubyEngine.

Répondre

0

se trouve que j'aurais utilise JRubyScriptEngine pas JRubyEngine. par exemple.

import com.sun.script.jruby.JRubyScriptEngine; 
    .... other imports 

public class ScriptEngine { 

    private static ScriptEngine engine = new JRubyScriptEngine(); 

    public void run(final String script, final Map<String,Object> input) { 
     final Bindings context = engine.createBindings(); 

     context.putAll(input); 

     try { 
      engine.eval(script,context); 
     } catch (ScriptException e) { 
      log.error("Failed to execute script: "+getScript(),e); 
     } 
    } 

} 
Questions connexes