Файл политики сериализации RPC в AppEngine

#java #google-app-engine #gwt #rpc

#java #google-app-engine #gwt #rpc

Вопрос:

Интерфейс GWT / AppEngine RPC меня съедает! Я получаю такие ошибки, как это:

INFO: javax.servlet.ServletContext log: UserService: ERROR: The serialization policy file '/55585D0849A4549E3FCE91B33725B02F.gwt.rpc' was not found; did you forget to include it in this deployment?

каждый раз, когда я запускаю сервер разработки. Я правильно установил public-root in appengine-web.xml (остальная часть приложения обслуживается нормально, за исключением .gwt.rpc файлов).

   <static-files>
    <include path="**" />
    <include path="**.nocache.*" expiration="0s" />
    <include path="**.rpc" expiration="0s" />
    <include path="**.cache.*" expiration="365d" />
  </static-files>

  <resource-files>
    <include path="**.gwt.rpc" />
  </resource-files>
  

Что я делаю не так? Помогите, пожалуйста!

Ответ №1:

После некоторых экспериментов вот что я придумал:

  • Не забудьте .rpc включить файлы в развертывание appengine ( appengine-web.xml файл) и остерегайтесь проблем с кэшированием! (например, изменения в политике сериализации)
  • Лучше не использовать public-root тег в appengine-web.xml : удалите welcome file (например index.html ) в / war каталоге и внесите соответствующие изменения, чтобы GWT мог найти его файлы
  • Обновите url-pattern теги сервлетов, чтобы они указывали внутри каталога, созданного GWT war , внутри каталога

  • Для сервлетов, связанных с tasks (т.е. web hooks ), не изменяйте url-pattern

Следовательно, единственное место, которое требует некоторых знаний о папке, созданной GWT, находится в web.xml . Конечно, welcome-file проект GWT также должен быть адаптирован.

Надеюсь, это кому-нибудь поможет

Комментарии:

1. Привет, я вижу похожие ошибки в моем журнале App Engine. Не могли бы вы подробнее рассказать о «остерегайтесь проблем с кэшированием! (например, изменений в политике сериализации)»? Спасибо.

2. кэширование файлов .rpc на стороне клиента, т.Е. Изменения в .rpc должны быть распространены.

3. Я получил эту ошибку из-за наличия блока <resource-files>, который не включал «**.gwt.rpc». Я удалил его, и теперь он работает.

Ответ №2:

У меня была такая же проблема на развернутом сервере GAE, и только после того, как я добавил rpc include для раздела resource-files, ошибка исчезла. Вот что у меня получилось:

 <resource-files>
    <include path="/resources/**" />
    <include path="**.gwt.rpc"/>
</resource-files>

<static-files>
  <include path="**" />
  <include path="**.nocache.*" expiration="0s" />
  <include path="**.cache.*" expiration="365d" />
  <exclude path="**.gwt.rpc"/>
</static-files>