【问题标题】:Connecting to Alfresco Repository using Chemistry cmis without using port使用 Chemistry cmis 连接到 Alfresco Repository 而不使用端口
【发布时间】:2016-10-17 13:47:48
【问题描述】:

我有一个要求,我需要使用以下 atompuburl 连接到 Alfresco 存储库

https://www.myalfresco.com/alfresco/api/-default-/public/cmis/versions/1.1/atom

www.myalfresco.com 是我的 aws alfresco 网址。

我使用下面的 sn-p 来获取一个 alfresco 会话

public Session connectToRepository(String username,String password,String atompuburl)
    {
        // Create session.
        Session session = null;
        try
        {
            // Default factory implementation of client runtime.
            final SessionFactory sessionFactory = SessionFactoryImpl.newInstance();

            // prepare connection parameters
            final Map<String, String> connectionParameters = new HashMap<String, String>();

            // User credentials.
            connectionParameters.put(SessionParameter.USER,username);
            connectionParameters.put(SessionParameter.PASSWORD,password);

            // Connection settings.
            connectionParameters.put(SessionParameter.ATOMPUB_URL,atompuburl);
            connectionParameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
            session = sessionFactory.getRepositories(connectionParameters).get(0).createSession();
        } catch (CmisConnectionException ce){
            System.out.println("CMIS error=========");
            ce.printStackTrace();
        } catch (CmisPermissionDeniedException cmisPermissionDeniedException)
        {

        }

我在 atompul url 中使用上述 url。

有什么方法可以在没有端口的情况下连接到 Alfresco 存储库(因为它没有给我)。

对于化学 Cmis 还有其他方法吗?

请帮忙。

这是它给出的例外

org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: Cannot access "https://www.myalfresco.com:443/alfresco/api/-default-/public/cmis/versions/1.1/atom": Connection timed out: connect at org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invoke(DefaultHttpInvoker.java:230) at org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invokeGET(DefaultHttpInvoker.java:57) at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:641) at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java:808) at org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:65) at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:90) at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:135) at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:112) at com.ge.test.CMISConnector.connectToRepository(CMISConnector.java:35) at com.ge.test.MyApp.main(MyApp.java:10) connected Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668) at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264) at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153) at org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invoke(DefaultHttpInvoker.java:205) ... 9 more

【问题讨论】:

    标签: alfresco alfresco-webscripts apache-chemistry


    【解决方案1】:

    您的端口似乎是 443,因为您的 URL 协议是“https”并且您没有指定端口,所以它必须是默认的 SSL 端口。

    确保您可以通过 curl 或类似的 HTTP 客户端成功访问该 URL。如果您不能这样做,请检查防火墙。还要检查您的 SSL 证书是否有效。

    【讨论】:

    • 当我使用浏览器点击myalfresco.com/alfresco/api/-default-/public/cmis/versions/1.1/…时,我可以点击主机并下载atompub文件
    • 是不是因为它使用https,它阻止了身份验证?我们是否需要在 jvm 中安装必要的证书才能访问相同的证书?
    • Java 必须能够验证证书,所以,是的,请确保您的 JVM 知道您的证书。如果这是问题所在,我不会期待超时,我会期待不同的错误。 “myalfresco.com”是您的真实域名吗?我注意到它的证书已过期。
    • 它只是一个示例名称,因为 URL 是机密的。谢谢,但我会尝试这种方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多