看看这是否有帮助。这进入了扩展 BaseEvaluator 的类。通过 Spring 连接 bean,然后将评估器设置为您的操作。
public boolean evaluate(JSONObject jsonObject) {
boolean result = false;
final RequestContext rc = ThreadLocalRequestContext.getRequestContext();
final String userId = rc.getUserId();
try {
final Connector conn = rc.getServiceRegistry().getConnectorService().getConnector("alfresco", userId, ServletUtil.getSession());
final Response response = conn.call("/someco/example?echo=false");
if (response.getStatus().getCode() == Status.STATUS_OK) {
System.out.println(response.getResponse());
try {
org.json.JSONObject json = new org.json.JSONObject(response.getResponse());
result = Boolean.parseBoolean(((String) json.get("result")));
} catch (JSONException je) {
je.printStackTrace();
return false;
}
} else {
System.out.println("Call failed, code:" + response.getStatus().getCode());
return false;
}
} catch (ConnectorServiceException cse) {
cse.printStackTrace();
return false;
}
return result;
}
在此示例中,我使用了一个简单的示例 Web 脚本,它回显您的 JSON 并根据“echo”参数的值切换结果。因此,当使用“false”调用它时,JSON 返回 false,而求值器返回 false。
我可能应该指出评估方法期望的 org.json.simple.JSONObject 和我用来从响应 JSON 中获取结果的 org.json.JSONObject 之间的名称冲突。