2012-02-01 2 views
1

Когда я создаю новый прокси-сервер на клиенте, со списком новых дочерних прокси и сохраняю график на сервере, я возвращаю только корневой узел. Я проверил, что сервер правильно сохраняет график и возвращает график, но GWT не может загрузить их в качестве прокси на клиенте.График объекта GWT с сервера пуст после сохранения

У меня есть модели:

class TripProxy { 
    List<PatronProxy> getPatrons(); 
    void setPatrons(List<PatronProxy> patrons); 

    // some other fields 
} 

class PatronProxy { 
    void setName(String name); 
    String getName(); 
} 

Мой редактор создает новую поездку, где один или несколько патронов могут быть добавлены к поездке. Метод сохранения выглядит примерно так:

Trip save(Trip trip); 

Это просто сохраняет то, что было дано, и возвращает его обратно. Почему возвращенная поездка не включает в себя покровителей, которые были прикреплены? Я задаю правильное с (...) заявление с моим вызовом для сохранения. Я знаю это, потому что, когда я позже отредактирую поездку (после обновления браузера), я могу видеть покровителей.

ответ

1

Вы говорите, что вы являетесь ", указав правильное с (...) заявление", но можете ли вы его показать?

Поскольку with() относится только к тому, что возвращается с сервера, ваш «Я знаю это, потому что ...» не имеет никакого смысла: это только подтверждает тот факт, что ваши объекты были сохранены, и с () метода поиска в порядке, а не метода() метода save().

Ваш призыв к save() должен выглядеть следующим образом:

ctx.save(tripProxy).with("patrons").to(new Receiver<TripProxy>() { ... }); 

(не стесняйтесь заменить to() с fire(), если вы хотите, чтобы огонь контекст прямо там, а позже один)

+0

My «с» внешностью например: с («покровители», «источник», «место назначения»). Origin и destination - это каждый AddressProxy, которые также недавно созданы. Эти два свойства корректно возвращаются с сервера, тогда как свойство покровителей - нет. Мой _because_ имел в виду, когда прокси-сервер поездки был позже извлечен с сервера при редактировании; а не фактическое сохранение после редактирования. – Brad

+0

Хорошо, теперь я лучше понимаю. Не могли бы вы показать код сервера для метода 'Trip save (Trip trip)? Вы выполняете другие методы в вашем 'RequestContext'? –

+0

Нет, я не учавствую, но думаю, что нашел. Обычно я пытаюсь упростить свою проблему, задавая вопросы по SO, и похоже, что я слишком упростил это. Когда я снова посмотрел на метод сохранения, я нашел проблему. Полностью моя вина. Спасибо за помощь! – Brad