2015-10-27 11 views
0

Я работаю с Java RMI. Проблема в том, что, закрыв поток или вызвав System.exit(0), мне нужен объект, зарегистрированный в реестре RMI, для выполнения unbind(), чтобы удалить все ассоциации с объектом. Когда мы выполняем System.exit(0), объект уже зарегистрирован в реестре RMI.Unbind at System.exit (0)

Как я могу это сделать, позвонив по телефону System.exit(0)unbind() сделан из объекта в частности? Я думал о том, чтобы сделать переопределение System.exit(), но, видимо, это не решение.

ответ

1

Проблема заключается в том, что, закрывая поток, или вызвать System.exit(0), мне нужен объект зарегистрирован в реестре RMI, чтобы выполнить unbind(), чтобы удалить все ассоциации с объектом.

Так сделайте это. Но нет такой вещи, как «закрытие нити», и даже , выходя из, нить не требует от вас развязывания ничего.

Когда мы выполняем System.exit(0), объект уже зарегистрирован в реестре RMI.

Хорошо, поэтому unbind() преуспеет. Не знаю, в чем ее смысл. Возможно, вы имели в виду 'еще registered'?

Как я могу это сделать, позвонив по телефону System.exit(0)unbind() сделан из объекта в частности?

Вы не можете. Вы должны предшествовать вызову System.exit() с вызовом unbind().

Я думал о том, чтобы сделать переопределение System.exit(), но, видимо, это не решение.

Вы не можете переопределить статические методы, а System является окончательным.

Кажется, что у вас может быть System.exit(), забрызганный повсюду, что уже является плохим опытом.

Простой ответ не называть System.exit() на всех, но для отвязывания и непортации объекта вместо. Затем потоки RMI выйдут, и ваша JVM выйдет сама по себе, если у вас нет ничейных не-демона.