スマートフォンのRaspberry Pi
とAndroid-App
でJavaプログラムを実行しています。アプリはRaspi
で実行中のメソッドを呼び出すことができるはずです。 http://lipermi.sourceforge.net/Java RMI - オブジェクトを渡す
これまでのところは良い、LipeRMI
は、ブールまたはint型などのプリミティブデータ型を渡すために働くん:Android
以来 は私がLipeRMI
を使用し、標準のJava RMIパッケージが含まれていません。
私は、私はエラー、次の受信アプリが、私はこの方法を実行するたびにサーバーから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'オブジェクトをエクスポートする必要があります。 – EJP
@EJPまた、それを試みましたが、ArrayListを取得しようとするたびに、私のアプリケーションがクラッシュします:/ –