передача параметров в удаленную оболочку компонента
-
19-09-2019 - |
Вопрос
Мне нужно передать параметр в удаленный сценарий beanshell, который запускается
java -cp bsh-2.0b4.jar bsh.Remote http://10.0.0.1/beanshell script.bsh p1 p2 p3
вызов.
Можно ли как-то прочитать параметры «p1», «p2» и «p3» изнутри script.bsh
?
п.с.Локальные параметры, проходящие через bsh.args
работает нормально, но его невозможно использовать с удаленными сценариями.
Решение
Я полагаю, вы используете бобовая скорлупа библиотека.По словам источников, сделать это невозможно:утилита принимает всего 2 аргумента:URL-адрес и имя локального файла сценария.Он даже не поддерживает несколько имен файлов сценариев, как утверждает.
public class Remote
{
public static void main( String args[] ) throws Exception
{
if ( args.length < 2 ) {
System.out.println("usage: Remote URL(http|bsh) file [ file ] ... ");
System.exit(1);
}
String url = args[0];
String text = getFile(args[1]);
int ret = eval( url, text );
System.exit( ret );
}
Также серверная сторона должна знать о передаваемых аргументах.
Выходы для вас:
- Создайте шаблон сценария, в котором вы подставите аргументы сценария, и сохраните замещающий сценарий во временной папке перед переходом к
bsh.Remote
- Создайте удаленный файл, из которого скрипт сможет читать аргументы.Вам нужна дополнительная связь с удаленным сайтом, чтобы загрузить этот файл перед звонком.
bsh.Remote
.
Не связан с StackOverflow