我想知道两者都可以
UnicastRemoteObject.exportObject(Remote,portNo) & LocateRegistry.createRegistry(portNo);
porNo 是一样的吗?
我测试了它的工作原理,但我担心是否有任何并发症?
为什么exportObject需要指定一个对象才能起作用?当我使用exportObject(Remote obj)时,它会抛出Ngoại lệ NullPointer
。
I'm wondering can both the
UnicastRemoteObject.exportObject(Remote,portNo) &
LocateRegistry.createRegistry(portNo);
portNo be the same?
是的,除非您使用不平等的套接字工厂,但事实并非如此。如果出现问题,将会抛出异常。
I test it works but I'm worrid if there is any complication?
一点也不,事实上这是一个好主意,可以节省监听端口。您可以使用 IANA 保留的Registry.REGISTRY_PORT,因此也应该关闭与网络管理员的任何争论。
Why does exportObject need to specify an object to work?
因为它是静态方法。
when I use exportObject(Remote obj) it throws an StubNotFoundException.
因为您还没有生成 stub 。如果您使用 >= 1.5,则不需要生成 stub ,但需要指定端口号。如果指定零,您将获得系统分配的端口号,但如果您已经导出了远程对象(在本例中为注册表),您将共享其端口,除非您使用不相等的套接字工厂。
Tôi là một lập trình viên xuất sắc, rất giỏi!