我使用以下REST服务将文档(从DB Ingestion)插入为此服务配置的Rest DB。我正在使用POST方法并在表单数据中发送参数。
网址:http://{hostname}:8010/v1/addDocument
。
问题是从摄取数据库中挑选的xml($DirectoryListing)
会自动序列化为文本,因此我没有获取插入的xml。
这个代码直接在Qconsole上运行时工作正常,但是从休息服务调用它无效。
我正在使用的ML版本是7.0-2.3
请帮我解决这个问题。
let $PrefixURI := "/docs/"
let $Path := fn:concat('/processing/',$transId,'/validDocs/')
let $_ := xdmp:log(fn:concat("Path",$Path))
let $DirectoryListing as node() :=
xdmp:invoke-function(
function() {
xdmp:directory($Path)
} ,
<options xmlns="xdmp:eval">
<database>{xdmp:database("Ingestion")}</database>
</options>
)
let $logs :=
element docsUris {
for $FileEntry in $DirectoryListing
let $Filename := functx:substring-after-last(xdmp:node-uri($FileEntry),'/')
let $docUri := fn:concat($PrefixURI, $Filename)
let $_ := xdmp:log(fn:concat("uri",$docUri))
let $contents := $FileEntry
let $_ := xdmp:log(fn:concat("adding document",$contents))
return
(: Insert the document :)
(dls:document-insert-and-manage(
$docUri,
fn:false(),
$contents,
"created",
(xdmp:permission("dls-user", "read"),
xdmp:permission("dls-user", "update")),
"historic"),
xdmp:document-add-collections(
$docUri,
"latest"),
xdmp:document-remove-collections(
$docUri, "historic")
)