Roy Tang

Programmer, engineer, scientist, critic, gamer, dreamer, and kid-at-heart.

Blog Notes Photos Links Archives About

I have a Marklogic 9 project that I’m configuring with Roxy. I’ve been following these examples:

Basically, I have a server-side JS function that I want to call after deploy content. I have something like this:

then you would define your new method

  def deploy_content
    # you can optionally call the original

    # do your stuff here
      xquery version "1.0-ml";
      xdmp:javascript-eval('var process = require("/ingestion/process.sjs"); process.postDeployContent();')
    :db_name => @properties[""] + "-content")


The xquery being called here evaluates fine when executed via query console. But when I call ml local deploy content, I get the following error:

ERROR: 500 "Internal Server Error"
ERROR: <html xmlns="">
    <title>500 Internal Server Error</title>
    <meta name="robots" content="noindex,nofollow"/>
    <link rel="stylesheet" href="/error.css"/>
    <span class="error">
      <h1>500 Internal Server Error</h1>
        <dt>XDMP-MODNOTFOUND: var process = require("/ingestion/process.sjs"); process.postDeployContent(); -- Module /ingestion/process.sjs not found</dt>
        <dt>in [anonymous], at 1:14 [javascript]</dt>
        <dt>at 3:6,
in xdmp:eval("var process = require(&amp;quot;/ingestion/process.sjs&amp;quot;); proce...") [javascript]</dt>
        <dt>in /eval, at 3:6 [1.0-ml]</dt>

Why is the module not found when running via xquery from app_specific.rb?

Or… is there a better way to call a JS module function from here. Sorry, I’m not too familiar with the xquery side, so I just called a JS function instead.


You need to use :app_name rather than :db_name, and pass in the name of an app-server that has the correct combination of documents database, and modules database. Otherwise the code is evaluated against the App-Services server, which runs against the out of the box, and typically empty Documents and Modules databases.

It would be nice if you could provide SJS code directly, and it would require only limited changes to Roxy. Add weight to this ticket to push its priority: