4

私はAlfrescoから始めています。Alfresco 4 Community Editionをインストールし、OpenCMISを使用して接続しようとしています。OpenCMISページから次のコードスニペットを取得しました。

    SessionFactory sessionFactory = SessionFactoryImpl.newInstance();
    Map<String, String> parameter = new HashMap<String, String>();
    parameter.put(SessionParameter.USER, "admin");
    parameter.put(SessionParameter.PASSWORD, "admin");
    parameter.put(SessionParameter.ATOMPUB_URL,
            "http://repo.opencmis.org/inmemory/atom/");
    parameter.put(SessionParameter.BINDING_TYPE,
            BindingType.ATOMPUB.value());
    parameter.put(SessionParameter.REPOSITORY_ID,
              "");

    Session s = sessionFactory.createSession(parameter);

しかし、リポジトリIDとは何か、AlfrescoのURLを指定する方法がわかりませんでした。誰かが私にそれを説明できますか?ありがとうございました。

4

1 に答える 1

13

tl; dr:

// User credentials.
parameters.put(SessionParameter.USER, "admin");
parameters.put(SessionParameter.PASSWORD, "admin");

// Connection settings.
parameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
parameters.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/service/cmis"); // URL to your CMIS server.
parameters.put(SessionParameter.AUTH_HTTP_BASIC, "true" );
parameters.put(SessionParameter.COOKIES, "true" );

// Create session.
// Alfresco only provides one repository.
Repository repository = sessionFactory.getRepositories(parameters).get(0);
Session session = repository.createSession();

CMIS仕様から:

アプリケーションは、CMISの「GetRepositories」サービス(getRepositories)を使用して、そのエンドポイントで使用可能なリポジトリのリストを取得する必要があります。

リポジトリIDは、CMISリポジトリによって生成される不透明な文字列であり、通常、事前に知るのではなく発見します。また、単一のCMISサーバーで複数のリポジトリをホストできます(ただし、Alfrescoは当面1つしかサポートしません)。

Alfrescoの場合、リポジトリIDはインスタンスごとに異なるため、クリーンなデータベースから新たに開始すると、そのIDが再生成され、ハードコードされたリポジトリIDに依存している場合はアプリケーションが破損します。

リポジトリIDの検出は、AtomPubバインディングのサービスドキュメントとcmisRepositoryEntryTypeWebサービスバインディングのを介して可能になります。

于 2012-03-03T10:44:00.887 に答える