Ich versuche, eine RServe-Sitzung von Java zu trennen und anschließend anzuhängen. Die Verbindung zu RServe funktioniert einwandfrei, aber das Anhängen verursacht eine Ausnahme. Trennen und Anfügen von RServe-Verbindung: Verbindung nicht möglich
package com.company.korana.r_interface;
import org.rosuda.REngine.Rserve.RConnection;
import com.company.korana.config.Config$;;
public class RToast {
public static void main(String[] args) throws Exception {
RConnection rConnection = new RConnection(Config$.MODULE$.rserveHost(), Config$.MODULE$.rservePort());
rConnection.assign("testVariable", "hello from java");
rConnection.eval("print('Hi R console from java')"); // <--- this is visible in the R console
org.rosuda.REngine.Rserve.RSession sessionHandle = rConnection.detach();
rConnection = sessionHandle.attach(); // <---- this throws
System.out.println(rConnection.eval("testVariable").asString());
}
}
Exception in thread "main" org.rosuda.REngine.Rserve.RserveException: Verbindung nicht möglich: Connection refused: connect bei org.rosuda.REngine.Rserve.RConnection (RConnection.java.: 90) um org.rosuda.REngine.Rserve.RConnection. (RConnection.java:66) um org.rosuda.REngine.Rserve.RSession.attach (RSession.java:36) um com.company.korana.r_interface .RToast.main (RToast.java:16) Verursacht von: java.net.ConnectException: Verbindung abgelehnt: connect unter java.net.DualStackPlainSocketImpl.connect0 (Native Method) unter java.net.DualStackPlainSocketImpl.socketConnect (Unknown Source) bei java.net.AbstractPlainSocketImpl.doConnect (Unknown Source) bei java.net.AbstractPlainSocketImpl.connectToAddress (Unknown Source) bei java.net.AbstractPlainSocketImpl.connect (Unknown Source) um java.net.PlainSocketImpl.connect (Unbekannte Quelle) um java.net.SocksSocketImpl.connect (unbekannte Quelle) um java.net.Socket.connect (unbekannte Quelle) um java.net.Socket.connect (Unbekannte Quelle) um java.net.Socket. (Unbekannte Quelle) um java.net.Socket. (Unbekannte Quelle) um org.rosuda.REngine.Rserve.RConnection. (RConnection.java:85) ... 3 mehr
Der Rserve läuft auf localhost mit dem Standardport.
EDIT: ich folgendes Maven Artefakt bin mit:
<dependency>
<groupId>org.rosuda.REngine</groupId>
<artifactId>Rserve</artifactId>
<version>1.8.1</version>
</dependency>