스마트 폰의 Raspberry Pi
및 Android-App
에 Java 프로그램을 실행 중입니다. 앱은 Raspi
에서 실행중인 메소드를 호출 할 수 있어야합니다. Android
이후 은 표준 자바 RMI 패키지를 포함하지 않는다, 나는 LipeRMI
을 사용 : http://lipermi.sourceforge.net/이Java RMI - 전달 객체
지금까지 너무 좋아, LipeRMI
은 부울 또는 int 등 기본 데이터 형을 전달하는 잘 작동 않습니다.
난 오류 다음 수신 응용 프로그램하지만 난 방법을 실행할 때마다로 서버에서 ArrayList<String>
을 전달하고 지금하고 싶은 것 :
LipeRMIException:Class java.util.ArrayList is not assignable from control.ServerInt
at lipermi.handler.CallHandler.exportObject(CallHandler.java:54)
at lipermi.handler.CallHandler.exportObject(CallHandler.java:48)
at control.RMIServer.createServer(RMIServer.java:26)
at control.Main.main(Main.java:17)
나는 내가 잘못 이해하지 않는다 이리.
RMIServer.java
public class RMIServer implements ServerInt{
private static final long serialVersionUID = 1L;
private ArrayList<String> list;
public RMIServer() {
list = new ArrayList<String>();
list.add("50:25:5:-1");
list.add("99:42:6:4");
createServer();
}
public void createServer() {
try {
CallHandler callHandler = new CallHandler();
callHandler.registerGlobal(ServerInt.class, this);
callHandler.exportObject(ServerInt.class, list);
Server server = new Server();
server.bind(7777, callHandler);
server.addServerListener(new IServerListener() {
@Override
public void clientDisconnected(Socket socket) {}
@Override
public void clientConnected(Socket socket) {}
});
} catch (LipeRMIException | IOException e) {
e.printStackTrace();
}
}
@Override
public ArrayList<String> getPWMLines() {
return list;
}
}
ServerInt.java
import java.util.ArrayList;
public interface ServerInt{
public ArrayList<String> getPWMLines();
}
이 :)이 힌트에 대한 감사하지만 어떻게 다음 ArrayList를 내보낼 수 있습니다 시도 할 수 있습니다
노출? –
@JasOn 당신은 할 수 없습니다. 'RMIServer' 오브젝트를 export 할 필요가 있습니다. – EJP
@EJP 또한 시도했지만, ArrayList를 가져올 때마다 내 앱이 다운됩니다 :/ –