Что вы используете для связи клиента с сервером с GWT?
GWT RPC является собственностью, но выглядит солидно, поддерживается шаблонами Google и упоминается в каждой книге и учебнике, которые я видел. Действительно ли это выбор для связи клиента/сервера GWT? Используете ли вы его и если нет то почему и что вы выбирали? Я предполагаю, что у меня есть общий код серверного приложения, который может вместить RPC, EJBs, веб-службы/SOAP, REST и т. д.
бонусный вопрос: любые проблемы безопасности с GWT RPC мне нужно знать?
2 ответов
мы в первую очередь используем три метода связи:
- GWT-RPC - Это наш основной и предпочтительный механизм, и то, что мы используем, когда это возможно. Это "GWT способ" делать вещи, и работает очень хорошо.
- XMLHttpRequest с помощью RequestBuilder - это обычно для взаимодействия с не-GWT задними концами, и мы используем это в основном, чтобы вытащить статический веб-контент, который нам нужен во время выполнения (что-то вроде серверной части). Это особенно полезно, когда нам нужно интегрировать с CMS. Мы обертываем наш код RequestBuilder в пользовательскую "панель" (которая принимает URI содержимого в качестве параметра конструктора и заполняет себя содержимым URI).
- подача формы с помощью FormPanel - Это также требует взаимодействия с не-GWT back end (пользовательский сервлет), и это то, что мы в настоящее время используем для межсайтовой связи. Мы действительно не общаемся "кросс-сайт" как таковой, но иногда нам нужно для отправки данных по SSL на странице без SSL, и это единственный способ, которым мы смогли это сделать до сих пор (с некоторыми Хак).
проблема в том, что вы находитесь в веб-браузере, поэтому любой протокол, отличный от http, в значительной степени не гарантирует работу (может не пройти через прокси).
Что вы можете сделать, это изолировать материал GWT-RPC в одном сменном классе и как можно скорее его удалить.
лично я бы просто полагался на передачу коллекции объектов с информацией, которая мне нужна, закодированной внутри коллекции-таким образом, очень мало кода RPC, потому что весь ваш код RPC когда-либо делает является " Collection commands=getCollection ()", но было бы миллион других возможностей.
или просто используйте GWT-RPC, как это было задумано, я не думаю, что это никуда не денется.