import sun.misc.IOUtils; import javax.script.*; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.function.Function; //TODO 不能跑,要跑复制到oauth项目里跑 public class test { ScriptEngineManager scriptEngineManager= new ScriptEngineManager(); ScriptEngine engine = scriptEngineManager.getEngineByName("JavaScript"); RestTemplate restTemplate = new RestTemplate(); SimpleScriptContext simpleScriptContext = new SimpleScriptContext(); //准备参数 Domain domain=new Domain(); domain.setSsoServerUrl("http://192.168.3.154:8477/actuator/health"); simpleScriptContext.setAttribute("OUT_CODE","AAA",ScriptContext.ENGINE_SCOPE); simpleScriptContext.setAttribute("OUT_DOMAIN",domain,ScriptContext.ENGINE_SCOPE); simpleScriptContext.setAttribute("REST_TEMPLATE",restTemplate,ScriptContext.ENGINE_SCOPE); //放一个函数 TODO 写一个易用性更高的函数 Function function = URL -> restTemplate.getForEntity(URL, String.class).getBody(); simpleScriptContext.setAttribute("httpClient",function,ScriptContext.ENGINE_SCOPE); ClassPathResource classPathResource = new ClassPathResource("test.js"); String script=null; try { InputStream inputStream = classPathResource.getInputStream(); byte[] bytes = IOUtils.readAllBytes(inputStream); script = new String(bytes, StandardCharsets.UTF_8); } catch ( IOException e) { e.printStackTrace(); } script+="\nprocess(OUT_CODE,OUT_DOMAIN)"; try { Object eval = engine.eval(script,simpleScriptContext); int a=1; } catch ( ScriptException e) { e.printStackTrace(); } }