Вызов службы GWT RPC непосредственно из Java - PullRequest
8 голосов
/ 25 августа 2009

Есть ли простой способ вызвать конечную точку службы GWT RPC непосредственно из кода Java? Я имею в виду настоящий код Java, а не код Java, скомпилированный в javascript.

Я спрашиваю, потому что мы хотим провести тесты производительности / стресс-тесты с интерфейсом GWT RPC. Я хотел бы написать тестовый набор на Java и запустить его в JVM (в отличие от JavaScript, выполняемого в браузере).

Я полагаю, что должен быть способ сделать это, потому что я предполагаю, что для режима GWT Hosted требуется такая функциональность. Тем не менее, я не могу найти какой-либо код во время выполнения GWT, который демонстрирует, как правильно сделать это. Я посмотрел на пакет com.google.gwt.user.client.rpc, но там, похоже, используется JSNI, который, очевидно, не будет использоваться чистой Java.

Ответы [ 3 ]

10 голосов
/ 02 марта 2010

GWT SyncProxy позволяет получить доступ к сервисам GWT RPC (например, методы) из чистого кода Java (не JSNI). Таким образом, вы можете использовать его для тестирования вашего интерфейса RPC.

Подробнее см. http://www.gdevelop.com/w/blog/2010/01/10/testing-gwt-rpc-services/.

1 голос
/ 26 августа 2009

Вы пытаетесь сравнить бизнес-логику службы или насколько хорошо работает сам GWT-RPC? Если вас больше всего беспокоит то, насколько хорошо работает ваш бэкэнд-код, вы можете просто создать экземпляр класса, который напрямую реализует ваш сервис:

MyServiceImpl impl = new MyServiceImpl();
impl.doSomething();

Если вы хотите проверить большую часть стека, включая вызовы RPC, посмотрите здесь . В разделе «Выполнение теста в веб-режиме» есть следующая строка: «По умолчанию тесты, выполняемые в размещенном режиме, выполняются как обычный байт-код Java в JVM». Поэтому, если вы используете описанную настройку, я думаю, что ваши тесты будут работать в Java по умолчанию. Также на этой странице есть информация о встроенных инструментах профилирования GWT.

0 голосов
/ 26 августа 2009

Вы можете использовать обычный инструмент для нагрузочного тестирования, такой как Grinder, для воспроизведения запросов к вашему сервису. Это не совсем то, о чем вы просите, но, возможно, это лучший способ выполнить нагрузочное тестирование вашего приложения. Grinder может моделировать много одновременных пользователей и так далее.

...