将参数传递给远程beanshell

时间:2010-02-08 16:28:15

标签: parameter-passing beanshell

我需要将参数传递给远程 beanshell脚本,该脚本通过

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

呼叫。

在某种程度上可以从script.bsh中读取参数'p1','p2'和'p3'吗?

P.S。通过bsh.args的本地参数工作正常,但它无法用于远程脚本。

1 个答案:

答案 0 :(得分:0)

我想,您正在使用beanshell库。根据消息来源,没有办法这样做:该实用程序只需要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 );
    }

服务器端也应该知道传递的参数。

为您提供出路:

  1. 创建脚本模板,在该模板中,您将替换脚本的参数并将替换脚本保存到temp dir,然后再传递给bsh.Remote
  2. 创建一个远程文件,脚本可以从中读取参数。在调用bsh.Remote之前,您需要与远程站点进行额外的通信才能上传此文件。