как вернуть значение из Groovy в Java - PullRequest
3 голосов
/ 11 марта 2011

У меня есть страница jsp, связанная с сервлетом, который запускает скрипты groovy.Я могу добраться до заводного скрипта из сервлета.Но после запуска скрипта, как мне вернуть ответ скрипта groovy обратно в сервлет для отображения на странице jsp?

Мой код сервлета java выглядит следующим образом:

File file = new File("TestScript.groovy");      
ClassLoader parent = getClass().getClassLoader();
GroovyClassLoader loader = new GroovyClassLoader(parent);
Class groovyClass = loader.parseClass(file);
Object[] args = {};
GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance();
groovyObject.invokeMethod("runTest", args);

Обновление:

Я также изучил groovyscriptengine и grovyshell, но при попытке запустить их я получаю следующее исключение: org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack: Нет подписи метода: runTest

Это то, что у меня есть в моем тестовом скрипте.Возможно я не возвращаю это должным образом.

class TestScript
{
 @Test
 public String runTest()
 {
  //run test
  return response
 }
}

1 Ответ

3 голосов
/ 11 марта 2011

Метод runTest groovy возвращает значение, которое вы хотите передать сервлету, и захватывает его как возвращаемое значение groovyObject.invokeMethod:

Object ret = groovyObject.invokeMethod("runTest", args1);
System.out.println("In Java " + ret);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...