Где мы должны определить наш интерфейс Клиент или сервер?
Простой: вам нужен интерфейс на обеих сторонах.
Клиент знает этот интерфейс, и в основном это «единственная вещь», которую он знает: есть некоторый интерфейс, который определяет поведение (методы), которое может использовать клиентский код.
Сервер знает этот интерфейс, и реализует it.
Этот интерфейс является основной вещью, которая «связывает» клиента и сервер (концептуально).Они оба знают, что есть какой-то интерфейс AdditionI
.Клиенту это понадобится, поэтому он
- сначала определит службу, которая поддерживает этот интерфейс
- , когда такая служба найдена, клиент знает, как вызвать соответствующий метод добавления
Сервер, с другой стороны, использует интерфейс для регистрации своей реализации в качестве службы ... которую затем могут вызывать клиенты.
Следовательно, в основном у вас есть три различных частей в вашем исходном коде:
- common : содержит этот
AdditionI
интерфейс - клиент :дополнительный код, необходимый для идентификации и последующего использования этой службы добавления
- сервер : дополнительный код для реализации и регистрации службы
И обратите внимание: это исключение java.lang.ClassNotFoundException
действительно базовый.Он говорит вам, что JVM, выполняющая некоторый код, не нашла некоторый класс.
Другими словами: ваша настройка пути к классам как-то нарушена.Просто исследуйте это исключение (вы можете найти бесконечную бесконечную документацию о таких базовых вещах, см., Например, здесь ).Скорее всего, все сводится к следующему: убедиться, что некоторые файлы .class находятся в пути к классам ... там, где они вам нужны.И первая часть уже говорит вам, куда нужно идти на занятия!