Чтобы решить вашу непосредственную проблему, вы должны принять «Сериализуемый» вместо «Объект». Тогда вам нужно сделать ваш класс сериализуемым. Если вы не можете этого сделать, вы никогда не сможете перенести объект через веб-сервис.
Это ядро, которое вы должны понимать: Если оно может быть передано через веб-сервис, это означает, что его можно сериализовать. Если возможно сериализовать его, можно сделать его сериализуемым.
Если вы не можете изменить сам класс, вы можете обойти эту проблему. Например, вы можете создать новый класс Serializable, который может читать всю необходимую информацию из вашего объекта.
Сказать, что всем членам класса Serializable тоже нужен Serializable, - не полная правда. Все необходимые данные должны быть сериализуемыми, но сами классы не должны реализовывать интерфейс Serializable.
Альтернативой является реализация этих двух методов:
private void writeObject(java.io.ObjectOutputStream out) throws IOException;
private void readObject(java.io.ObjectInputStream in) throws IOException, classNotFoundException;
Здесь есть статья о сериализации: Раскройте секреты Java Serialization API
В нем описывается, как использовать эти два метода в разделе «Настройка протокола по умолчанию».
Если это недостаточно продвинуто, прочитайте в разделе «Создание собственного протокола: интерфейс с возможностью внешнего подключения», чтобы узнать, как реализовать интерфейс с внешним интерфейсом (подынтерфейс для Serializable), который дает вам полный контроль над процессом сериализации.
(Я игнорирую «временную» функцию для простого игнорирования несериализуемых данных, поскольку полагаю, что они вам нужны. Если мое предположение неверно, прочитайте раздел «Несериализуемые объекты».)