我正在尝试使用 JcrUtils 从独立的 java 应用程序访问存储库。
**repository = JcrUtils.getRepository("http://localhost:4502/crx/server"); this works**
**repository = JcrUtils.getRepository("https://localhost:4502/crx/server"); this doesn't work**
线程“main”中的异常 javax.jcr.RepositoryException:无法 使用以下设置访问存储库: org.apache.jackrabbit.repository.uri:https://localhost:4502/crx/server以下 咨询了 RepositoryFactory 类: org.apache.jackrabbit.commons.JndiRepositoryFactory:拒绝 org.apache.jackrabbit.core.RepositoryFactoryImpl:拒绝 org.apache.jackrabbit.jcr2dav.Jcr2davRepositoryFactory:拒绝 org.apache.jackrabbit.jcr2spi.Jcr2spiRepositoryFactory:拒绝也许您尝试访问的存储库在以下位置不可用 此时此刻。在 org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:223) 在 org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:263) 在 com.hero.jcr.util.CqHelper.getSession(CqHelper.java:20) 处 com.hero.jcr.commandline.CheckConnection.getDmAssets(CheckConnection.java:36) 在 com.hero.jcr.commandline.CheckConnection.main(CheckConnection.java:29)
提前致谢
问题可能有不同的原因。
看起来您正在尝试在同一端口上以相同的情况访问 http 和 https。 Http 和 Https 不会在同一端口上并行运行。 请按照 ronnyfm 的提示使用 SSL 向导来检查 SSL 是否已激活以及在哪个端口上使用:https://docs.adobe.com/content/help/en/experience-manager-65/administering/security/默认 ssl.html 例如,AEM 中 https 的默认端口是 8443,因此如果您已在那里进行配置,请尝试 https://localhost:8443 来访问它。
如果您使用不受信任的证书,则连接到 https 可能无法工作,您需要先将其添加到 Java 安全密钥库中。就我而言,我收到了相同的“无法访问”消息,因为有关证书的原始异常已被我正在使用的 JCR 库默默吞没。
当您将证书添加到密钥库但它仍然不起作用时,请检查证书是否是为您请求的同一主机创建的。如果您为 bla.host 创建它,但尝试通过 localhost 访问它,它也会给您相同的异常,而原始消息会被默默吞掉。
我可以在服务器中访问,但我无法在java中访问,为什么?我也遇到同样的异常。 如何解决它,我无法获取存储库