2012-05-04 6 views
0

リポジトリWebスクリプトの結果に基づいて、共有に新しい評価者セットを書きたいと思います。Alfresco:いくつかのカスタムレポWebscriptに基づくカスタム共有エバリュエータ

現在の既存の共有評価基準は、いくつかのXML構成で使用でき、Alfrescoの通常のメタデータに関連しています。

しかし、私はここに既にあるロジックの大半(BaseEvaluator)を使って自分のJavaエバリュエーターを書く方法を知りたいと思います。

は、私はいくつかのようなJSONを返すリポジトリwebscriptがあるとし、{「結果」:「真」}:

  • 私は私のカスタム評価者からアクセスするにはどうすればよいですか?主に、Springコンテキストからのalfresco webappへのプロキシURLへのアクセス方法は?
  • 自分の非同期呼び出しをJavaで記述する必要はありますか?
  • 必要な評価メソッドのこのJSONObjectパラメータはどこにありますか?

この場合に役立ちますあなたの助けに感謝

+0

BaseEvaluatorのソースコードを見ましたか?それはJSONObjectに関するあなたの質問に答えるべきです。あなたは間違いなくレポ層へのあなた自身の呼び出しを行う必要があります。 Surfフレームワークはこれを既にサポートしているので、Surf APIを活用してこれを行うことができます。しかし、例を見つけるのが面倒です。 –

答えて

3

を参照してください。これは、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; 
} 

この例では、私はあなたのJSONをエコーバックし、「エコー」引数の値に基づいて結果を切り替え簡単な例のWebスクリプトを使用しています。したがって、 "false"で呼び出されると、JSONはfalseを返し、エバリュエータはfalseを返します。

評価メソッドが期待するorg.json.simple.JSONObjectと、レスポンスJSONの結果を妨害するために使用しているorg.json.JSONObjectとの間の名前衝突を指摘する必要があります。

+0

Jeffに感謝、私が必要としたものとまったく同じように見えます。私は試して、あなたに知らせるでしょう。 –

+0

は問題なく動作します –

関連する問題