Я пытаюсь вызвать удаленный метод через RMI, который принимает 1 аргумент типа MyData
, который является интерфейсом, известным как на стороне сервера, так и на стороне клиента.
В моем клиентском классе MyClass
я создал анонимный объект типа MyData
и передал его удаленному методу и получил исключение:
Caused by: java.lang.reflect.InvocationTargetException
at wt.method.RemoteMethodServer.invoke(RemoteMethodServer.java:795)
at
... 2 more
Caused by: java.lang.ClassNotFoundException: MyClass$1 (no security manager: RMI class loader disabled)
Вопрос: Должен ли я использовать реализацию интерфейса MyData
для передачи аргумента метода RMI? Эта реализация известна как на стороне сервера, так и на стороне клиента.
Это возможно, если:
Serializable
, и(2) Может быть неправдой и, возможно, не должно быть правдой по какой-либо причине, кроме этого, и (3), скорее всего, будет неверным, так как это, скорее всего, будет только клиентским классом, который не является ни одним из серверный бизнес.
Не делай этого. Нет никакого преимущества и нескольких недостатков. Используйте внешний или статический класс.