openCPU:单服务器开发模式中的奇怪错误“ Versuch eine Nicht-Funktion anzuwenden”

时间:2019-05-06 13:32:05

标签: r web-applications opencpu

由于单一服务器开发模式的奇怪行为,我被困在使用openCPU进行R-Application的开发中。 我的R包可以说它的名为“ myPkgName”包含几个函数,可以用作openCPU的接口。 其中之一称为ocpu_pat2list

  1. 当我在普通R中尝试该功能时,它可以正常工作。
  2. 当我通过在R中调用opencpu::ocpu_start_app("myPkgName")并使用测试接口http://localhost:5656/ocpu/test/来启动测试方式时,该功能正常运行。
  3. 但是当我启动我的应用程序并调试它在浏览器中的行为时,该应用程序崩溃并显示以下错误:

OpenCPU error HTTP 400
Versuch eine Nicht-Funktion anzuwenden

In call:
(function (x) 
x$.self$finalize())(<environment>)

opencpu-0.4.js:9:54
XML-Verarbeitungsfehler: Syntax-Fehler
Adresse: http://localhost:5656/ocpu/library/myPkgName/R/ocpu_pat2list/json
Zeile Nr. 1, Spalte 1:

更奇怪的是,到目前为止,当我在实际目标服务器上运行应用程序时,不会发生此错误。但是,为了保持效率,我确实想摆脱这个错误,甚至根本不了解问题所在。

注意:

  • 我安装了最新版本的openCPU。
  • 该函数的调用是提供一个参数的“ POST”调用
  • 如果没有/json
  • ,也会发生错误

有问题的函数如下:

ocpu_pat2list <- function(patId){
  if(missing(patId)){
    stop("patId is missing")
  }
  if(is.character(patId)){
    patId <- as.numeric(patId)
  }
  pat <- PatRefClass(patId)
  pat$db_getPatInfo()
  pat$db_getPatData()
  ret <- pat$toList()
  return(ret)
} 

我很感谢任何想法。

0 个答案:

没有答案