【问题标题】:Oracle Rest Data Service (ORDS) URL linkOracle Rest 数据服务 (ORDS) URL 链接
【发布时间】:2025-12-21 23:15:10
【问题描述】:

我已经在 Centos 7 上安装了 ORDS 3.0 并在独立模式下使用它,但是 我目前有两个问题:

  • URL 包含 /ords,例如:http://localhost/ords。我想将其更改为 /apex 。我尝试将 ords.war 重命名为 apex.war,但 URL 没有改变。

  • 我无法在系统引导时启动 ORDS。我已经为它创建了一个systemctl服务,但是ORDS启动后就停止了。

【问题讨论】:

  • 将 ords.war 重命名为 apex.war,一切正常。这将使它成为 /apex
  • 我只是在这里看到您的评论,抱歉之前它只是由我走过,但我尝试将 ords.war 重命名为 apex.war 但是当我通过链接访问它时 ords 会重定向然后更改/apex/ords 再次
  • 具体来说是 302 http重定向我发现在日志中
  • 我使用的过程下载 ords > 解压缩 > 将 ords.war 更改为 apex.war > java -jar apex.war 然后配置设置仍然重定向到名称为 ords 的 url .war
  • 永远不要解压缩文件。单机可能不是您的最佳选择。使用 tomcat 可能会更容易。我会发布一个示例。

标签: java oracle-ords


【解决方案1】:

ORDS 的特定版本可能很重要,例如,从 3.0 版本到 3.9 版本确实发生了很大变化。

不过……

在你的 init 标签脚本中启动 ORDS 和其他任何东西都差不多,你应该能够 nohup 并将输出重定向到一个日志文件。如果你这样做,日志文件显示什么,为什么它在启动后停止?

还有 URL - 因为您在独立模式下运行 ORDS,所以您可以利用正在使用的嵌入式 Jetty 网络服务器。

这意味着您可以配置 URI 的重写方式。 Kris 有一个如何做到这一点的示例here

如何将 /catalog 映射到 /ords/klrice/metadata-catalog/

<Call name="addRule">
         <Arg>
           <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
             <Set name="pattern">/catalog</Set>
             <Set name="replacement">/ords/klrice/metadata-catalog/</Set>
           </New>
         </Arg>
       </Call>
</Ref>

【讨论】:

  • 谢谢你,杰夫,我检查了链接,需要一些时间来实现它们并发布结果,关于在启动时没有启动的 ords 我会在 URL 工作后发布日志。
  • 我检查了您提供的链接服务未启动问题现已解决,它是 shell 脚本错误,已从您提供的链接中更正。现在我只是离开码头进行 url 重写我将坚持使用 apache url 重写方法,因为服务器也运行 apache。非常感谢您的帮助非常感谢它
  • Cool、apache、weblogic 等都在 URL 重写中发挥了作用。如果您构建了一些很酷的东西,请务必在 Twitter 上与 @oraclerest 分享。
  • 如果有这方面的事情一定会分享
  • 到目前为止,事实证明,因为 ords 应用程序创建重定向到链接 /ords/f .... 似乎没有办法使用 apache 从 url 隐藏 /ords 部分。