【问题标题】:Alfresco: Custom Share Evaluator based on some custom repo webscriptsAlfresco:基于一些自定义 repo webscripts 的自定义共享评估器
【发布时间】:2012-07-05 05:02:46
【问题描述】:

所以我想根据一些存储库 webscripts 的结果在 Share 中编写一组新的评估器。

当前现有的 Share 评估器可通过一些 XML 配置使用,并且与 Alfresco 常用的元数据相关。

但是,我想知道如何编写自己的 Java 评估器,同时重新使用这里已经存在的大部分逻辑(BaseEvaluator)。

假设我有一个存储库 webscript,它返回一些 JSON,例如 {"result" : "true"}:

  • 如何从我的自定义评估器访问它?主要是如何从 Spring 上下文中访问 alfresco webapp 的代理 URL?
  • 我需要用 Java 编写自己的异步调用吗?
  • 在哪里可以找到所需评估方法的 JSONObject 参数?

感谢您的帮助

【问题讨论】:

  • 你看过BaseEvaluator的源代码吗?这应该可以回答您关于 JSONObject 的问题。您肯定需要自己调用 repo 层。 Surf 框架已经支持这一点,因此您应该能够利用 Surf API 来执行此操作。但是很难找到一个例子。

标签: alfresco alfresco-share


【解决方案1】:

看看这是否有帮助。这进入了扩展 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 之间的名称冲突。

【讨论】:

  • 感谢 Jeff,看起来完全符合我的需要。我会试一试,然后告诉你。
猜你喜欢
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 2018-06-13
  • 2013-07-21
  • 2017-10-27
  • 1970-01-01
相关资源
最近更新 更多