Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81

RPC запрос не отвечает. Guice + dispatch

15.09.2016, 12:29. Показов 699. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане.

Структура моего запроса довольно проста.

У меня есть класс Action, содержащий int поле, которое инкрементируется каждый раз, когда пользователь на клиенте нажимает кнопку. Класс Result, возвращающий результат. Handler, который делает само действие инкремента поля.
Но почему то при нажатии кнопки код прыгает в секцию onFailure(). И я не пойму почему.
Прошу помочь с решением этой проблемы.

Ниже будут приведены исходники .

Action

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class IncrementCounter implements Action<IncrementCounterResult> {
    private int amount;
 
    /** For serialization only. */
    public IncrementCounter(){}
 
    public IncrementCounter(int amount){
        this.amount = amount;
    }
 
    public int getAmount() {
        return amount;
    }
}


Result
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class IncrementCounterResult implements Result {
    private int amount;
    private int current;
 
    /** For serialization only. */
    public IncrementCounterResult(){}
 
    public IncrementCounterResult(int amount, int current){
        this.amount = amount;
        this.current = current;
    }
 
    public int getAmount() {
        return amount;
    }
 
    public int getCurrent() {
        return current;
    }
}


Handler, который увеличивает поле на 1.

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class IncrementCounterHandler implements ActionHandler<IncrementCounter, IncrementCounterResult> {
    private int current = 0;
 
 
    public Class<IncrementCounter> getActionType() {
        return IncrementCounter.class;
    }
 
 
    public IncrementCounterResult execute(IncrementCounter action, ExecutionContext context) throws ActionException {
        current += action.getAmount();
        return new IncrementCounterResult(action.getAmount(), current);
    }
 
 
    public void rollback(IncrementCounter action, IncrementCounterResult result, ExecutionContext context) throws ActionException {
        current = result.getCurrent() - result.getAmount();
    }
}


Actions Module, где мы биндим наш Action на Handler
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
public class ActionsModule extends ActionHandlerModule {
    @Override
    protected void configureHandlers() {
        bindHandler(IncrementCounter.class, IncrementCounterHandler.class);
    }
}


? extend ServletModule

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
public class DispatcherServletModule extends ServletModule {
    @Override
    protected void configureServlets() {
        serve("/dispatch").with(GuiceStandardDispatchServlet.class);
    }
}


Listener
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
public class RpcCommandGuiceConfig extends GuiceServletContextListener {
 
    @Override
    protected Injector getInjector() {
//        return Guice.createInjector(new ServerDispatchModule(), new ActionsModule(), new DispatcherServletModule());
        return Guice.createInjector(new ActionsModule(), new ServerDispatchModule());
    }
}


файл Module.gwt.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0//EN"
        "http://google-web-toolkit.googlecode.com/svn/releases/2.0/distro-source/core/src/gwt-module.dtd">
<module>
    <source path="client"/>
    <source path="shared"/>
    <source path="server"/>
 
    <inherits name='com.google.gwt.user.User'/>
    <inherits name="com.mvp4g.Mvp4gModule"/>
    <inherits name="org.moxieapps.gwt.highcharts.Highcharts"/>
    <inherits name="net.customware.gwt.dispatch.Dispatch" />
    <inherits name="com.google.gwt.inject.Inject" />
    <entry-point class='client.Module'/>
 
 
</module>
файл web.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <filter>
        <filter-name>guiceFilter</filter-name>
        <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>guiceFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
        <listener-class>server.RpcCommandGuiceConfig</listener-class>
    </listener>
 
    <welcome-file-list>
        <welcome-file>Module.html</welcome-file>
    </welcome-file-list>
</web-app>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2016, 12:29
Ответы с готовыми решениями:

XML RPC запрос
Есть код на руби, мне нужно запилить его на C#. Собственно, в коде то всё яснопонятно, но я всё не могу найти примере как на шарпе это...

RPC в RPC и очередь выполнения
Крч... вот код: void OnConnectedToServer() { NetView.RPC(&quot;SendData&quot;, RPCMode.All, Convert.ToInt32(Network.player.ToString()),...

Сервер не отвечает на запрос
Здравствуйте, столкнулся со следующей проблемой. Пытаюсь сформировать запрос подобный браузерному и отправить его на сервер. Если верить...

1
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
16.09.2016, 12:58  [ТС]
вопрос решен. serve("/Module/dispatch").with(DispatchServiceServlet.c lass);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.09.2016, 12:58
Помогаю со студенческими работами здесь

Как сервер отвечает на http запрос?
Здравствуйте. Очень интересно как сервер работает в следующем случае - клиент отправляет http запрос( с заголовками и всеми делами), а что...

Если POST запрос содержит '>>', скрипт отвечает 403 Forbidden
Доброго времени суток. Сегодня утром заметил ошибку при работе своего скрипта. Если передать POST запрос key=value и value будет...

Dispatch в Python
обескал весь гугл и не нашел ничего полезного по теме. кто то может обьяснить и показать пример кода питона с Dispatch?

An error occurred when trying to dispatch GET action
Добрый день, форумчане. Помогите, пожалуйста, разобраться с проблемой. К сожалению, с явой работаю меньше недели, но уже спихнули...

Как настроить connectify dispatch?
Как настроить connectify dispatch и вообще работает ли он по прямому назначению?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru