2017-11-16 5 views
0

私はRoxyで設定しているMarklogic 9プロジェクトを持っています。 私はこれらの例に従っています:https://github.com/marklogic-community/roxy/wiki/Adding-Custom-Build-StepsMarklogic Roxy:app_specific.rbからjavascriptモジュールを呼び出す

基本的には、コンテンツを展開した後に呼び出すサーバー側のJS機能があります。私はこのようなものを持っている:

#あなたはあなたの新しい方法

def deploy_content 
    # you can optionally call the original 
    original_deploy_content 

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

    end 

XQueryはここに呼ばれるクエリコンソールを介して実行時に細かい評価されているを定義します。私はmlのローカル配備コンテンツを呼び出すときしかし、私は次のエラーを取得する:app_specific.rbからのXQuery経由で実行するときに

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

は、モジュールが見つからないのはなぜ?

または...ここからJSモジュール関数を呼び出す方がいいですか?申し訳ありませんが、私はxquery側にあまり慣れていないので、代わりにJS関数を呼び出しました。

答えて

2

:db_nameではなく:app_nameを使用し、適切なドキュメントデータベースとモジュールデータベースの組み合わせを持つアプリケーションサーバーの名前を渡す必要があります。それ以外の場合、コードはApp-Servicesサーバーに対して評価されます。App-Servicesサーバーは、既定の状態で実行され、通常は空のDocuments and Modulesデータベースに対して実行されます。

SJSコードを直接提供することができれば、それはRoxyの限定された変更だけで済みます。その優先順位をプッシュするこのチケットに重量を追加します。

https://github.com/marklogic-community/roxy/issues/821

HTH!

+0

ありがとうございます! Re:githubチケット、私はgithubに精通していないよ、どうすれば "このチケットに重量を追加する"?私ができることはそれについてコメントしていると思いますか? –

+0

あなたはログインする必要があります。その後、コメントを投稿したり、問題やコメントにスマイリーのタグを付けることができます。あなたの必要性を記述すれば、特にコメントは素晴らしいでしょう。 – grtjn

関連する問題