我目前正在通过开发一种工具来学习 Java,该工具用于在客户端创建和填写多项选择表单并在服务器端保存和评估它们。我为网络部分使用了 RMI 教程中的代码框架,直到现在它工作正常。客户端和服务器应用程序都在同一个包中,但作为单独的应用程序运行。为了更容易开发,它们现在都在同一个系统上运行,尽管当事情完成时这会改变。
因此,让我们用一些代码切入正题,看看到底出了什么问题:
服务器.java
Server() throws RemoteException {
super();
}
public static void main(String[] args) {
try {
LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
}
catch (RemoteException ex) {
System.out.println("SERVER: " + ex.getMessage());
}
try {
Naming.rebind("Server", new Server()); <---
}
catch(MalformedURLException ex) {
System.out.println("SERVER: " + ex.getMessage());
}
catch(RemoteException ex) {
System.out.println("SERVER: " + ex.getMessage());
}
}
[...] methods that are called by the client via ServerInterface
<--- 标记 Client-GUI 的启动位置。
客户端.java
private static Gui_loadSets gui_loadSets = new Gui_loadSets();
public static void main(String[] args) {
loadGuiLoadSets();
}
这是第一个 GUI 可见的地方;一个选择要从中加载的表单。这个 GUI 是通过启动服务器来加载的,即使我注释掉了。所以服务器并没有真正加载客户端应用程序,而是以某种方式神奇地访问它的 GUI 并无缘无故地显示它。
我已经尝试在加载 GUI 之前“进入”该行,但最终我陷入了无限循环,所以我真的不知道发生了什么。
这是我在这里的第一个问题,所以如果我错过了任何明显的问题,请原谅我。提前感谢您的帮助。如果您需要更多代码,我很乐意提供,但剩下的大部分代码都是关于多项选择形式的。