目標: OpenCPU AJAX Post 呼び出しで RJDBC を使用する。
ユースケース: Apache phoenix データベースに接続してデータを取得する必要があります。そして、そのデータに対して分析を行うことになっています。したがって、Phoenix に接続するには、rjdbc を使用しています (Phoenix は他の接続オプションをサポートしていません)。
環境 : public.opencpu.org
ここに私がしようとしているものがあります:
html
<textarea>
library(RJDBC)
.. do some data fetching and then r statistics
</textarea>
<br />
<button id="submitbutton" >Execute</button>
<br />
<br />
<div id="output">
</div>
JavaScript
<script type="text/javascript">
//When Document is Ready
$(function () {
var baseurl = "https://public.opencpu.org";
//because identity is in base
ocpu.seturl(baseurl+"/ocpu/library/base/R");
//actual handler
$("#submitbutton").on("click", function(){
//arguments
var mysnippet = new ocpu.Snippet($("#input").val());
//perform the request
var req = ocpu.call("identity", {
"x" : mysnippet
}, function(session){
session.getStdout(function(outtxt){
$("#output-txt").text(outtxt);
});
});
//if R returns an error, alert the error message
req.fail(function(){
alert("Server error: " + req.responseText);
$("#output").hide();
});
req.always(function(){
$("button").removeAttr("disabled");
});
});
});
</script>
シナリオ
実行ボタンをクリックすると、ユーザーが入力した値をテキスト領域 (ここではライブラリ (RJDBC) といくつかの db 操作) から取得し、ajax 投稿を送信して、以下のエラーで応答します
Google Chrome コンソール ログ:
POST https://public.opencpu.org/ocpu/library/base/R/identity 400 (Bad Request)
OpenCPU error HTTP 400
package 'rJava' could not be loaded
これにより、より明確になることを願っています。
rJava が OpenCPU で動作するかどうかを確認する必要があります。