2012-01-19 2 views
2

Я новичок в языке R и пытается простую программу в Java с помощью RConnection, но он дает это исключениеRserve Исключение: Рукопожатие не удалось

org.rosuda.REngine.Rserve.RserveException: Handshake failed: expected 32 bytes header, got -1 
    at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:107) 
    at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:60) 
    at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:44) 
    at test.sandeep.main(sandeep.java:9) 

Thats в contuctor из RConnection. Может ли кто-нибудь сказать, что может быть неправильным тест упаковки;

import org.rosuda.REngine.Rserve.RConnection; 

public class sandeep { 
public static void main(String[] str) { 

    try { 
     System.out.println("hii"); 
     RConnection c = new RConnection(); 
     System.out.println("hii"); 
     double d[] = c.eval("rnorm(10)").asDoubles(); 
     for (double td : d) { 
      System.out.println(td); 
     } 

    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

} 

}

ответ

3

ошибка говорит, что чтение не удалось сразу же после подключения к Rserve. Ваш Java-код в порядке (если вы подключаетесь к локальному экземпляру Rserve). Вероятно, проблема с другой стороны - проверьте, работает ли Rserve (см. Rserve FAQ). Вы также можете запустить Rserve в режиме отладки (Rserve(TRUE) в R), чтобы узнать, что происходит на стороне сервера.

0

Если вы работаете RServe на коробке Linux, убедитесь, что у вас есть файл конфигурации в/и т.д./место с именем «Rserv.conf» и с содержанием

дистанционного включения

Это позволяет удаленный доступ к RServe

Смежные вопросы