2015-08-18 4 views
1

Я попытался выполнить некоторый г код из Java с помощью Rserve:Rserve Исключения «Eval не удалось, статус запроса: код ошибки: 127»

try { 
    RConnection conn = new RConnection(); 
    conn.eval("write.csv(PoS, file = 'C:/test/PoS.csv',row.names=FALSE)"); 
    } catch (REngineException eR) { 
     System.err.println("Exception: "+ eR); 
     throw new TestException("syntax error on eval on R code");   
    } catch(Exception e){ 
     e.printStackTrace(); 
     throw new TestException("parseAndEval did not generate an exception on syntax error");  
} 

Я получил Eval не удался ошибка. Но я могу успешно выполнить RCODE в R:

write.csv(PoS, file = 'C:/test/PoS.csv',row.names=FALSE) 

Я уверен, что Rserve() был запущен на стороне R, и другие заявления, как

conn.eval("iris"); 

возможно.

+0

файла правильного? –

+0

@Kevin yes, Путь к файлу верен – MangooSaSa

ответ

0

Я решил эту проблему. Матрицу PoS необходимо перезагрузить, каждый раз, когда я устанавливаю новое Rconnection, или сохраняю его в изображении рабочей области по умолчанию.

1

Чтобы получить соответствующее сообщение об ошибке, используйте это вместо простого Eval

REXP rResponseObject = rServeConnection.parseAndEval("try(eval("+R_COMMAND_OR_SOURCE_FILE_PATH+"),silent=TRUE)"); 
if (rResponseObject.inherits("try-error")) { 
LOGGER.error("R Serve Eval Exception : "+rResponseObject.asString()); 
} 

Этого регистратор печатает точную ошибка, брошенного из R.

пути
Смежные вопросы