连接到安全的远程AEM存储库

连接到安全的远程AEM存储库,aem,jcr,Aem,Jcr,为了创建JCR节点,我们正在尝试使用JcrUtils.getRepository(…)方法以编程方式连接到远程AEM实例,以获取存储库实例的句柄 此实例是安全的,并在请求中检查cookie以允许用户进入 是否有方法将cookie传递给JcrUtils(或连接到AEM存储库的其他方法) 现在,当运行代码JcrUtils.getRepository(“http://host:port/crx/server");它只是抛出以下异常: javax.jcr.RepositoryException:

为了创建JCR节点,我们正在尝试使用
JcrUtils.getRepository(…)
方法以编程方式连接到远程AEM实例,以获取存储库实例的句柄

此实例是安全的,并在请求中检查cookie以允许用户进入

是否有方法将cookie传递给
JcrUtils
(或连接到AEM存储库的其他方法)

现在,当运行代码
JcrUtils.getRepository(“http://host:port/crx/server");它只是抛出以下异常:

    javax.jcr.RepositoryException: Unable to access a repository with the following settings:
    org.apache.jackrabbit.repository.uri: https://<host>:<port>/crx/server
The following RepositoryFactory classes were consulted:
    org.apache.jackrabbit.jcr2dav.Jcr2davRepositoryFactory: declined
    org.apache.jackrabbit.jcr2spi.Jcr2spiRepositoryFactory: declined
    org.apache.jackrabbit.commons.JndiRepositoryFactory: declined
    org.apache.jackrabbit.core.RepositoryFactoryImpl: declined
    org.apache.jackrabbit.rmi.repository.RmiRepositoryFactory: failed
because of RemoteRuntimeException: java.rmi.RemoteException: Failed to read the resource at URL https://<host>:<port>/crx/server; nested exception is: 
    java.io.StreamCorruptedException: invalid stream header: 3C21444F
because of RemoteException: Failed to read the resource at URL https://<host>:<port>/crx/server; nested exception is: 
    java.io.StreamCorruptedException: invalid stream header: 3C21444F
because of StreamCorruptedException: invalid stream header: 3C21444F
Perhaps the repository you are trying to access is not available at the moment.
    at org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:223)
    at org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:263)
...
javax.jcr.RepositoryException:无法使用以下设置访问存储库:
org.apache.jackrabbit.repository.uri:https://:/crx/server
咨询了以下RepositoryFactory类别:
org.apache.jackrabbit.jcr2dav.Jcr2davRepositoryFactory:已拒绝
org.apache.jackrabbit.jcr2spi.Jcr2spiRepositoryFactory:拒绝
org.apache.jackrabbit.commons.JndiRepositoryFactory:拒绝
org.apache.jackrabbit.core.RepositoryFactoryImpl:已拒绝
org.apache.jackrabbit.rmi.repository.rmrepositoryFactory:失败
由于RemoteRuntimeException:java.rmi.RemoteException:无法读取URL https://:/crx/server处的资源;嵌套异常是:
java.io.StreamCorruptedException:无效的流头:3C21444F
由于RemoteException:无法读取URL https://:/crx/server处的资源;嵌套异常是:
java.io.StreamCorruptedException:无效的流头:3C21444F
由于StreamCorruptedException:无效的流标头:3C21444F
可能您尝试访问的存储库目前不可用。
位于org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:223)
位于org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:263)
...

无法通过JcrUtils.getRepository(…)传递cookie
它作为字符串接受

在您的日志中,org.apache.jackrabbit.jcr2dav.Jcr2davRepositoryFactory在应用程序类路径中不存在。 确保已在LIB之后添加依赖项

  • jackrabbit jcr commons
  • jackrabbit-jcr2dav
如果您使用的是Maven:

<dependency>
    <groupId>org.apache.jackrabbit</groupId>
    <artifactId>jackrabbit-jcr-commons</artifactId>
    <version>2.10.1</version>
</dependency>

<dependency>
    <groupId>org.apache.jackrabbit</groupId>
    <artifactId>jackrabbit-jcr2dav</artifactId>
    <version>2.10.1</version>
</dependency>

org.apache.jackrabbit
jackrabbit jcr commons
2.10.1
org.apache.jackrabbit
jackrabbit-jcr2dav
2.10.1

我遇到了与@user3239244类似的问题,但仅限于https。 我正在尝试从独立的java应用程序访问存储库

repository = JcrUtils.getRepository(url)
适用于
http
,适用于
https

从日志:

javax.jcr.RepositoryException:无法使用 以下设置: org.apache.jackrabbit.repository.uri:以下RepositoryFactory 课程咨询: org.apache.jackrabbit.jcr2dav.Jcr2davRepositoryFactory:已拒绝 org.apache.jackrabbit.jcr2spi.Jcr2spiRepositoryFactory:拒绝 org.apache.jackrabbit.commons.JndiRepositoryFactory:拒绝 org.apache.jackrabbit.core.RepositoryFactoryImpl:已拒绝 org.apache.jackrabbit.rmi.repository.rmrepositoryFactory:失败 由于RepositoryException:无法读取URL处的资源 由于SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径生成失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效证书路径 由于ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效证书路径 由于SunCertPathBuilderException:无法找到请求目标的有效证书路径

您可以在浏览器中点击“https://:/crx/server”并检查是否加载了它吗?