Проблема привязки запуска сервера RMI - PullRequest
0 голосов
/ 06 июля 2011

У меня проблема при попытке привязать реализацию моего интерфейса.

java.rmi.MarshalException: error marshalling arguments; nested exception is: 
    java.io.NotSerializableException: java.util.concurrent.ThreadPoolExecutor

Кто-нибудь знает, почему это происходит?Почему в любом случае ThreadPoolExecutor должен быть сериализуемым?Он не включен ни в мой jar-файл, который является моей базой кода, ни в файл, указанный в файле политики.Оба параметра включают только два файла класса.Они в свою очередь импортируют более сложные классы.Это возможная причина моих проблем?

1 Ответ

0 голосов
/ 06 июля 2011

Вы не экспортировали свой удаленный объект.Он не расширяет UnicastRemoteObject, и вы не вызывали UnicastRemoteObject.exportObject ().Любой из них сделал бы это (не оба), и вы не сделали ни одного из них.Таким образом, ваш фактический удаленный объект был сериализован в Реестр с помощью метода bind (), и это не удалось, потому что у вашего удаленного объекта есть непереходный элемент экземпляра типа ThreadPoolExecutor, который не сериализуем.Но проблема в экспорте, а не в члене экземпляра.Если объект был экспортирован, его заглушка будет сериализован в Реестр, и проблема не возникнет.

...