我在尝试通过Java运行R程序时遇到异常。正在建立连接,但随后在R代码评估开始时抛出错误。
Rconnection connection = new RConnection();
System.out.println(String.valueOf(connection.isConnected())); //Output: True
connection.eval("source('C:\\Users\\Vini\\Documents\\test.R')"); //Exception in this line我已经在R中启动了Rserve。
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:127)
at org.rosuda.REngine.Rserve.protocol.RTalk.request(RTalk.java:213)
at org.rosuda.REngine.Rserve.protocol.RTalk.request(RTalk.java:180)
at org.rosuda.REngine.Rserve.protocol.RTalk.request(RTalk.java:250)
at org.rosuda.REngine.Rserve.RConnection.eval(RConnection.java:231)
at integration.Integration.main(Integration.java:36)
org.rosuda.REngine.Rserve.RserveException: eval failed
at org.rosuda.REngine.Rserve.RConnection.eval(RConnection.java:234)
at integration.Integration.main(Integration.java:36)发布于 2016-08-31 18:18:51
问题是isConnected不能保证在建立连接后它会报告正确的状态:
请注意,当前不会对此状态进行现场检查,即如果连接因外部事件而中断,则标志不会反映这一点
您需要检查Rserve日志以检查请求是否已成功处理
https://stackoverflow.com/questions/39246481
复制相似问题