Pergunta

Eu preciso passar parâmetro para remoto beanshell script que é executado através

java -cp bsh-2.0b4.jar bsh.Remote http://10.0.0.1/beanshell script.bsh p1 p2 p3

chamada.

É de alguma forma possível ler 'p1' params, 'p2' e 'P3' de dentro do script.bsh?

P.S. params locais que passam por bsh.args funciona bem, mas é inutilizável com o script remoto.

Foi útil?

Solução

suponho, você está usando beanshell biblioteca . Não há nenhuma maneira de fazê-lo, de acordo com fontes: o utilitário leva apenas 2 argumentos: o URL e o nome do arquivo script local. Ele ainda não suporta vários nomes de arquivos de script, como afirmam.

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 );
    }

Além disso, o lado do servidor deve estar ciente sobre os argumentos passados.

As maneiras para você:

  1. Criar o script modelo, em que você vai substituir os argumentos para o script e salvar o script substituto para dir temporário antes de passar para bsh.Remote
  2. Crie um arquivo remoto, onde o script pode ler argumentos de. Você precisa de comunicação adicional com o site remoto para carregar este arquivo antes de chamar bsh.Remote.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top