错误:找不到页面 - 尝试在ML7中安装新的REST扩展时

时间:2015-10-15 16:15:36

标签: marklogic

我正在尝试在ML7中学习REST API(我们无法升级到ML8以获得所有新功能),所以我可以添加我需要的内容。

我正在尝试安装简单的rest-api扩展,该扩展可能会将森林ID解析为其名称,但它无法按预期工作。 我在curl PUT中进行了身份验证,但返回的html代码给了我:

Welcome, <username>
Page Not Found

我正在执行的命令是:

curl --anyauth --user user:pass -X PUT -H "Content-type: application/xquery" -d@"./resolvefidtoname.xqy" http://localhost:8002/resolvefidtoname

和xquery文件中的代码是:

$ cat resolvefidtoname.xqy
xquery version "1.0-ml";
module namespace ernest = "http://marklogic.com/rest-api/resource /resolvefidtoname";

import module namespace admin = "http://marklogic.com/xdmp/admin"
    at "/MarkLogic/admin.xqy";

declare function ernest:resolvefidtoname($node as element()) as element()?
{
  if (fn:data($node) ne 0) then
    element {fn:node-name($node)}
    {
      xdmp:forest-name(fn:data($node))
    }
  else ()
};

我有点难过。我开始认为我们的应用程序被引导到不同于80002的端口上工作但没有配置为利用rest-api,但我不知道如何测试它。

我认为可能通过使用curl命令我可以测试给定端口上的应用程序是否支持rest-api,所以我尝试了:

curl -X GET --anyauth --user user:pass -H "Accept: application/json" http://localhost:8002/LATEST/rest-apis/

但结果是答案:     { “REST的API”:[]} 这不是很有帮助,在任何其他监听端口上测试时都没有响应。

非常感谢任何帮助。 我在AmazonLinux上运行ML6,安装来自ML ec2 cfn模板(没什么特别的。)

谢谢

1 个答案:

答案 0 :(得分:2)

感谢您的尝试。有一些问题。

在REST服务器的端口上安装并执行REST扩展,而不是在端口8002(管理REST API的端口)上安装和执行。

在REST服务器上安装扩展的URI与上面的curl命令不同:

http://docs.marklogic.com/6.0/REST/PUT/v1/config/resources/%5Bname%5D

模块命名空间有一个嵌入空间:

"http://marklogic.com/rest-api/resource /resolvefidtoname"
                                       ^

有关更多背景信息,请参阅:

http://docs.marklogic.com/6.0/guide/rest-dev/extensions#id_59112

还有免费的培训资源Dave Cassel在答案中列出:

How to deploy files into MarkLogic server

顺便说一句,MarkLogic 6是两个旧版本。如果可能,您可以使用MarkLogic 8获得许多新功能和修复。

希望有帮助,