2017-04-13 4 views
0
log.info(m.differenceValue(jsonElement1,jsonElement2)); 

beanshell에서의 호출 기능. jar 파일로 구현 된 코드. 이 info() 만 문자열, warn() 등의 방법을 허용하는 동안 당신은 Logger지도을 통과하려고하는메소드 정보 (java.util.HashMap)가 'org.apache.log.Logger '클래스에 없습니다.

public static <K, V> Map<String,Object> differenceValue(JsonElement json1, JsonElement json2){ 
    Gson g = new Gson(); 

    Type mapType = new TypeToken<Map<String, Object>>(){}.getType(); 
    Map<String,Object> firstMap = g.fromJson(json1, mapType); 
    Map<String, Object> secondMap = g.fromJson(json2, mapType); 
    return(mapDifference(firstMap,secondMap)); 
}  
public static <K, V> Map<K, V> mapDifference(Map<? extends K, ? extends V> left, Map<? extends K, ? extends V> right) { 
    Map<K, V> difference = new HashMap<K, V>(); 
    difference.putAll(left); 
    difference.putAll(right); 
    difference.entrySet().removeAll(right.entrySet()); 
    return difference; 
} 

이클립스에서 잘 작동한다 되나 JMeter를 년에는

error:Method info(java.util.HashMap) not found in class'org.apache.log.Logger'

답변

1

공유 솔루션에 대한

public String toString()

Returns a string representation of this map. The string representation consists of a list of key-value mappings in the order returned by the map's entrySet view's iterator, enclosed in braces ("{}"). Adjacent mappings are separated by the characters ", " (comma and space). Each key-value mapping is rendered as the key followed by an equals sign ("=") followed by the associated value. Keys and values are converted to strings as by String.valueOf(Object).

+0

안녕 유리 덕분에 (당신은 키가 & 값이 무엇인지에 따라 다름)의 HashMap을 위해 일을 생각하고, 문서에 따라 log.info(m.differenceValue(jsonElement1,jsonElement2).toString());

을 시도합니다. 지금 데이터를 인쇄 중입니다 – sindhu

+0

No prob. 문제가 해결된다고 생각한다면 대답을 수락하십시오. :-) –

1

을 던지고있다 당신은 어떻게 든 Map String을 String으로 캐스팅해야합니다.

또한 Beanshell에서 generics를 지원하지 않는다고 생각하면 JSR223 Elements and Groovy language으로 전환하는 것이 좋습니다.