Как справиться с изменением свойств на стороне клиента в приложениях GWT? - PullRequest
2 голосов
/ 19 сентября 2011

при разработке приложений GWT мы столкнулись с множеством проблем с настройкой проекта. Позвольте мне объяснить ... Как обычно в процессе разработки, у нас есть несколько сред для нашего приложения: локальная, демонстрационная, предварительная и живая. Конечно, они работают на разных машинах, некоторые используют SSL, а другие нет. Но самое главное - все они имеют разные URL.

Теперь в нескольких местах в нашем приложении нам нужно указать несколько URL-адресов. Обычно мы используем файлы * .properties, хранящиеся на сервере, и такие инструменты, как Spring taglibs и тег <spring:message />. Но так как GWT не имеет таких инструментов, мы закончили тем, что оставили жестко закодированные URL-адреса и выполнили замену кода в различных ветвях SVN. Как вы можете себе представить - это худший из возможных сценариев, который вызывает у нас много проблем.

Итак, мой вопрос: как можно создать правильный, гибкий механизм хранения свойств конфигурации, совместно используемых как на стороне клиента, так и на стороне сервера в приложении GWT. Эти свойства должны быть доступны для обработчиков на стороне сервера, клиентского приложения (скомпилированный JavaScript), UiBinder, другого кода, работающего на сервере (рабочие, Spring и т. Д.).

Предпочтительным способом было бы избежать gwtc build , если мы изменим значение какого-либо свойства, но я думаю, что это будет трудно достичь. Поэтому я приму любую разумную альтернативу.

1 Ответ

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

Как насчет использования относительных ссылок URI (например, абсолютных путей, без схемы или полномочий; т.е. /path/to/foo вместо http://example.com/path/to/foo)?

И в тех немногих местах, где вам абсолютно необходим URI (со схемойи полномочия), затем используйте другое свойство для хранения «префикса» (например, http://example.com), а затем объедините с указанным выше путем.
Те места, где вам нужен полный URI, должны все находиться на сервере, что означает, что выне нужно перекомпилировать проект GWT при изменении «префикса», так что все это только конфигурация во время выполнения, и вы можете развернуть одни и те же артефакты во всех средах.во время выполнения в GWT, затем используйте динамическую страницу хоста и JSNI (или com.google.gwt.i18n.client.Dictionary);см http://code.google.com/webtoolkit/articles/dynamic_host_page.html

...