java-func-caller

0.0.8 • Public • Published

java-func-caller

use spawn call the java method which the jar support. if want the java method can be called by node, the jar file must be meet three conditions.

  • first, the jar must be a runableble jar file and the name of the jar must be the main class full name. for example your jar's main class is : your.foo.Main, then your jar name must be : your.foo.Main.jar。

  • sencod, the main class of the jar must has a public static method: public static Map<String, Object> run(List args)

  • the map which run method return must contains the following keys

    • status, must, status == 0 means success, status < 0 failed.
    • value, optional, the value return to the node function when successed.
    • error_msg, optional, if failed please set it.
    • exception, optional, if failed please set it.

if the jar meet the top conditions, then your can call the method use the following code:

var FuncCaller = require('java-func-caller');
var caller = new FuncCaller([__dirname + './your.foo.Main.jar']);
 
caller.callFunc({
    func    : 'your.foo.Main',
    params  : [1, 2, 3, 4, 5],
    success : function(data){
        console.log('success => task id:' + data.task_id + ', value:' + data.value);
    },
    error   : function(data){
        console.log('error => ' + data.error_msg);
    }
});

the return of callback

  • status, must, the mean of the value as follows:
    • 0 success
    • -1 parse command error
    • -2 a exception occured when execute java function
    • -3 execute java function failed.
    • -99 unknown error
  • value, optional, the java return value when success.
  • error_code, optional, come from the "status" property of the java function return.
  • error_msg, optional, come from the "error_msg" property of the java function return.
  • exception, optional, the exception object when a exception occured, come from the exception" property of the java function return.

methods the FuncCaller.jar has supported

  • SvgToPng, generate a png file by svg code. the first paramater is svg code, and the second is the save path.

A Foo main class

package org.myless.func;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
public class FooFunc {
  public static void main(String... args){}
  
  public static Map<StringObject> run(List<String> args){
    Map<StringObject> result = new HashMap<StringObject>();
    
    if(args.size() > 0){
      result.put("status", String.valueOf(0));
      result.put("value", "join result: " + join(args));
    }else{
      result.put("status", "-1");
      result.put("error_msg", "empty list!");
    }
    
    return result;
  }
  
  public static String join(List<String> args){
    if(args == null || args.size() == 0) { return ""; }
    
    StringBuffer buff = new StringBuffer();
    
    for(String i : args){
      buff.append(i);
    }
    
    return buff.toString();
  }
}
 

Package Sidebar

Install

npm i java-func-caller

Weekly Downloads

18

Version

0.0.8

License

MIT

Last publish

Collaborators

  • keven-wang