Вызов удаленного метода Java, который принимает java.lang.Object в качестве аргумента в Resin - PullRequest
0 голосов
/ 16 сентября 2011

Я использую смолу в одном проекте. Пока все хорошо, кроме одного маленького вопроса?

Я создал универсальный метод, который принимает любой Объект в качестве единственного аргумента, но когда я вызываю метод, он ищет имя метода, но с другим типом аргумента, конечно, с переданным типом объекта.

Я не уверен, может ли Ресин или любой другой Сервер приложений на самом деле сделать это, или я ошибаюсь здесь?

Я разрабатываю интерфейс в Objective-j / Cappuccino и отображаю удаленные методы Java через CP2JavaWS.

В основном в Objective-J я объявляю что-то вроде этого:

-(CPString) updateQuote:(id)modifiedQuote
    {}

Мне не нужно это реализовывать, просто объявите это.

Затем в моем WebApp я объявляю и реализую метод следующим образом:

public String updateQuote(Object modifiedQuote)
        {
      // implementation
        }

Затем в интерфейсе я вызываю метод следующим образом:

[DBManagerRemoteService updateQuote:aObject delegateRespHandler:@selector(success:) delegateFailHandler:@selector(failed:)];

Проблема в том, что aObject является экземпляром класса CYQuote, поэтому, когда я вызываю удаленный метод, он обнаруживает, что не ищет updateObject(java.lang.Object), а вместо этого ищет updateObject(com.myApp.services.CYQuote), который не объявлен или не реализован. Конечно, я мог бы просто реализовать метод для каждого класса, но моя цель - создать общий метод обновления.

1 Ответ

0 голосов
/ 19 сентября 2011

Я должен ответить сам и извиниться за любые неудобства, вызванные моим бессмысленным вопросом.Проблема не имела ничего общего со Resin или любым сервером веб-приложений.CP2JavaWS создает запрос Http на основе переданного объекта, поэтому я изменяю его, чтобы принять некоторые дополнительные параметры.

...