2017-09-16 12 views
3

JSFとBeanshellスクリプトでJavaを使用しています。私はbeanshellでjavaクラスのフィールドとオブジェクトを使いたい。私はGoogleからの助けを得るために最善を尽くしましたが、有用な情報が見つかりませんでした。例Javaクラスフィールド、Beanshellでのオブジェクトの使用

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
import bsh.EvalError; 
import bsh.Interpreter; 

public class C { 

static Map<String,Object> map = new HashMap<String,Object>(); 
static List<String> list = new ArrayList<String>(); 
static Map<String,Integer> integerMap = new HashMap<String,Integer>(); 

public static void main(String[] arg) throws EvalError{ 
    list.add("Hello"); 
    list.add("World"); 
    Interpreter i = new Interpreter(); // Construct an interpreter 
    map.put("stringList", list);//in java 
    i.eval("map.put(\"stringList\", list)");// gives error 
    List list = (List) map.get("stringList"); 
    for(String str:(List<String>)list){ 
     System.out.println(str); 
    } 
    } 
} 

については 私はBeanShellの中で、同じオブジェクトにJavaでコレクションのために利用可能であるすべての操作を実行します。

Jmeter beanhellの変数を更新し、リンクに記載されている詳細に基づいて、Jmeterが文字列マップを使用していて、同じことをしたいようですが、オブジェクトを使用しています。

私の要件を達成するために使用できる技術や技術が、Java、beanshell、JSF、またはjavaの他の利用可能なオプションのいずれかであれば、あなたのご意見をお待ちしております。 JMeterののBeanShellのかで

答えて

1

良くJSR223サンプラー(Java言語)あなたはプットとしてのJMeter変数にオブジェクトを置くことができます。

JMeterVariables vars = JMeterContextService.getContext().getVariables(); 
vars.putObject("stringList", stringList); 

とget:

vars.getObject("stringList"); 

Javaの一般的なケースでは、あなたが追加する必要がありますBeanshell Interpretersetとする方法:

list.add("Hello"); 
    list.add("World"); 
    Interpreter i = new Interpreter(); // Construct an interpreter 

    map.put("stringList", list);//in java 
    try { 
     i.set("map", map); 
     i.set("list", list); 
     System.out.println(i.eval("map.put(\"stringList\", list)")); 
    } catch (EvalError e1) { 
     e1.printStackTrace(); 
    } 
+0

Jmeterはちょうど私が与えた例だが、私はjmeterの助けを求めていない、私はJavaでこれを達成したい。私はあなたの入力を感謝します –

+0

Javaで私の更新されたソリューションを参照 – user7294900

+0

私はこのスレッドのためのあなたの答えを受け入れる、それを実装するためのクリーンな方法はありますか?私はbeanshellで変数を設定しないようにしたい、Jmeterのようにきれいに保つための方法はありますか?リストリンクを参照するhttps://stackoverflow.com/questions/46267735/java-with-beanshell-to-access-fields-and-object-with-clean-code –

関連する問題