powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / сервер-клиент соединение (Spring MVC)
25 сообщений из 30, страница 1 из 2
сервер-клиент соединение (Spring MVC)
    #39148615
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем суть дела вот в чем:

Есть серверное приложение (связь с БД, кеширование и небольшая логика) - *.jar проект

Есть "Веб морда", запущенная на Tomcat *.war проект

Каким образом можно организовать взаимодействие этой "Веб морды" с сервером?

Я имею в веду такую ситуацию :

1. Юзер нажал кнопку
2. На контроллер отправился AJAX запрос
3. Контроллер (*.war) распознал запрос
4. Контроллеру (*.war) нужно обратиться к серверу (*.jar) что бы тот обработал данные и вернул результат (если нужно)
5. Контроллер (*.war) обработал результат с сервера (*.jar) и передал ответ на AJAX запрос.

Пункты 3-5 должны выполнятся в приделах одного метода.

К примеру:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    @RequestMapping(value = {"/getName"}, method = RequestMethod.POST)
    @ResponseBody
    public ObjectResponse getLocation(@RequestBody ObjectRequest objectRequest) {
        
        String name = "";

        if (objectRequest.getId() != null) {
              String result = server.query(objectRequest.getId())
              if (result != null) {
                    name = result;
              }
        }

        ObjectResponse objectResponse = new ObjectResponse(name, objectRequest.getId());

        return objectResponse;
    }


В данный момент на сервере реализовано только соединение через Java NIO, но в принципе дописать кусок для взаимодействия с "веб мордой" не проблема, если будет нужно.

Жду помощи и предложений! :-)

П.С. После 3 часов поисков информации в интернете, не зная как правильно гуглу объяснить чего я хочу - немного устал )))
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148634
skywriter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jar - это формат файла-архива. А приложение то какое? Консольное, GUI, ...?
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148646
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,
websocket тебе поможет
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148663
Фотография JonnySKS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erВ общем суть дела вот в чем:
3. Контроллер (*.war) распознал запрос
4. Контроллеру (*.war) нужно обратиться к серверу (*.jar) что бы тот обработал данные и вернул результат (если нужно)
5. Контроллер (*.war) обработал результат с сервера (*.jar) и передал ответ на AJAX запрос.

Пункты 3-5 должны выполнятся в приделах одного метода.

Выполнять бизнес логику, работу с базой в контроллерах - пример дурного тона.

А по сути - не очень понятна суть вопроса.
Контроллер принял запрос от клиента, делегировал бизнес часть соответствующим классам, получил результат, вернул его клиенту.
Клиент принял ответ от сервера и инициировал соответствующую реакцию на веб морде.

Код: javascript
1.
2.
3.
4.
5.
6.
$.ajax({
type: "GET",
url: "/someURL",		
data: "id=" + Id,
success: function(data){SuccessFunction();}
});
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148713
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skywriter, консольное
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148724
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JonnySKS,

никто в контроллерах работу с базой не хочет выполнять :-) ... просто мне сложно объяснить... попробую нарисовать:

Схема

Этот "соответствующий класс", которому делегируется метод, должен быть соединением с другим приложением - Сервером... открытый сокет или еще что либо, что после обращения к нему будет отправлять пакет на сервер и ожидать ответа или ошибку.

П.С. Не хочу придумывать велосипед, посему и ищу совета у вас.
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148726
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Эмм... если ты мне предлагаешь отправлять запросы с сайта напрямую на сервер - это исключено, только через "WEB морду"
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148832
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erвадя,

Эмм... если ты мне предлагаешь отправлять запросы с сайта напрямую на сервер - это исключено, только через "WEB морду"
как мне кажется есть проблемы с терминалогией
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148851
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяBoJI4erвадя,

Эмм... если ты мне предлагаешь отправлять запросы с сайта напрямую на сервер - это исключено, только через "WEB морду"
как мне кажется есть проблемы с терминалогией
....???

ВикипедияWebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.

Мне нужно связать не браузер с веб сервером, а "Веб морду"(веб сервер) с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД).
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148864
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМне нужно связать не браузер с веб сервером, а "Веб морду"(веб сервер) с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД).
что всё это значит?
всё на разных железках?
а кто мешает железку с веб сервером связать железку с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД) по websocket?

авторWebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.
читай первоисточники, а не всякую ерунду....
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148952
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторМне нужно связать не браузер с веб сервером, а "Веб морду"(веб сервер) с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД).
что всё это значит?
всё на разных железках?
а кто мешает железку с веб сервером связать железку с "глобальным сервером"(консольное приложение, обеспечивающее бизнес логику и связи с БД) по websocket?

авторWebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.
читай первоисточники, а не всякую ерунду....


Да, они на разном железе.
Зачем использовать websocket(по факту обертку для socket, см ниже) для связи двух приложений если в таком случае (не для ленивых) можно обойтись обычным Socket???


В перво источнике ( The WebSocket Protocol ) тоже самое что и на википедии написано... :\
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148957
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как нормальных предложений не поступало, решил все же сделать через Socket с блокировкой текущего потока до момента получения ответа.

Временные интервалы (без обработки пакета на удаленном сервере (только пересылка туда-обратно )) и если не грузить сервер другими программами занимает в среднем 19`000 - 21`000 мс на 10`000 запросов с ожидание ответа (то есть около 2 - 3 мс на 1 запрос без обработки ).
Как делал запросы на сервер
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
try {
            int portNumber = 14;
            boolean waitResponse = true;
            long begin = System.currentTimeMillis();
            for (int i = 0; i < 10_000 ; i++) {
                remoteServer.request("Hello, I'm message from WEB".getBytes(), portNumber, waitResponse);
            }
            long end = System.currentTimeMillis();
            LOG.debug(" -> Time server request = " + (end - begin));
        } catch (IOException | RuntimeException e) {
            e.printStackTrace();
        }

Жду комментариев...
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148960
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,
вообще зачем такоё геморой?
всё можно организовать на war (твоей терминалогии) а jar - как "библиотека"
и с apk связывается по ws и с браузером по ws. и всё из одного war.
всё проще и быстрее.
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39148966
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, я почитал все твои посты но совершенно не понял какая решается задача.

Единственное что я не понял - тебя неопытного заставили рисовать архитектуру и ты не знаешь
как ее правильно нарисовать.

Те цветные квадратики что ты нарисовал концептуальны, но например с точки зрения TCP/hosts
они совершенно неинформативны. А ведь это на 90% определяет выбор например ролей
между хостами. Кто будет вызывающий а кто вызываемый.
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149009
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяBoJI4er,
вообще зачем такоё геморой?
всё можно организовать на war (твоей терминалогии) а jar - как "библиотека"
и с apk связывается по ws и с браузером по ws. и всё из одного war.
всё проще и быстрее.

WAR и JAR это 2а разных приложения, она могут быть запущенны на разном ЖЕЛЕЗЕ.

JAR - это сервер (запущенный к примеру в Корее)

WAR - один из вариантов UI(может быть запущен хоть у "Васи в подвале")
...

Я считаю не разумно навязывать работу UI серверу. ... это абсолютно разные задачи.
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149010
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBoJI4er, я почитал все твои посты но совершенно не понял какая решается задача.

Единственное что я не понял - тебя неопытного заставили рисовать архитектуру и ты не знаешь
как ее правильно нарисовать.

Те цветные квадратики что ты нарисовал концептуальны, но например с точки зрения TCP/hosts
они совершенно неинформативны. А ведь это на 90% определяет выбор например ролей
между хостами. Кто будет вызывающий а кто вызываемый.

Скорее я не знаю как объяснить людям, что у меня в голове происходит :-)

А вопрос был простой - есть ли средства что бы выполнить TCP запрос к удаленному серверу и получить ответ на запрос в пределах одного метода, что бы я не "создавал велосипед". .... я никого не просил помогать строить архитектуру :-)
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149012
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BoJI4erесть ли средства что бы выполнить TCP запрос к удаленному серверу и получить ответ на запрос в пределах одного метода
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  String sentence;
  String modifiedSentence;
  BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
  Socket clientSocket = new Socket("localhost", 6789);
  DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
  BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  sentence = inFromUser.readLine();
  outToServer.writeBytes(sentence + '\n');
  modifiedSentence = inFromServer.readLine();
  System.out.println("FROM SERVER: " + modifiedSentence);
  clientSocket.close();
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149026
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174BoJI4erесть ли средства что бы выполнить TCP запрос к удаленному серверу и получить ответ на запрос в пределах одного метода
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  String sentence;
  String modifiedSentence;
  BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
  Socket clientSocket = new Socket("localhost", 6789);
  DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
  BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  sentence = inFromUser.readLine();
  outToServer.writeBytes(sentence + '\n');
  modifiedSentence = inFromServer.readLine();
  System.out.println("FROM SERVER: " + modifiedSentence);
  clientSocket.close();



Это через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка?
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149027
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BoJI4erЭто через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка?
так тебе шашечки или ехать? :-)
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149034
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174BoJI4erЭто через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка?
так тебе шашечки или ехать? :-)

Мне нужно название технологии что бы это можно было оформить красиво, или сказать "такой нет" буду использовать свою обертку для TCP
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149059
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erЭто через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка?
Таких обёрток много. RMI, JMX, HTTP/Rest, SOAP, Corba, Remoting(.Net) e.t.c и еще дохренища тех которые я не знаю.
Чтобы их выбрать - нужно экспертное сравнение. Таблица. По вертикали названия технологий.
По горизонтали - фичи.

Нужны также ответы от тебя.

1) Что ты из них знаешь? Что знает твоя команда? Это разовая азработка или будешь очень долго сопровождать?
2) Что нужно сделать (1 метод или много методов) ?
3) Насколько оно комплексное (передаются только атомы или сущности более сложные)
4) Нужна ли секюрити?
5) Нужен ли сеанс?
6) Нужна-ли гетерогенность?

Может быть тебе подойтет решение с сырым TCP сокетом. В принципе можно начать с него. Или я-бы начал с Rest.
Если не хватит - искать другое.
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149088
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBoJI4erЭто через Socket, это я и сам организовать могу... мне интересно есть ли какая нибудь красивая обертка?
Таких обёрток много. RMI, JMX, HTTP/Rest, SOAP, Corba, Remoting(.Net) e.t.c и еще дохренища тех которые я не знаю.
Чтобы их выбрать - нужно экспертное сравнение. Таблица. По вертикали названия технологий.
По горизонтали - фичи.

Нужны также ответы от тебя.

1) Что ты из них знаешь? Что знает твоя команда? Это разовая азработка или будешь очень долго сопровождать?
2) Что нужно сделать (1 метод или много методов) ?
3) Насколько оно комплексное (передаются только атомы или сущности более сложные)
4) Нужна ли секюрити?
5) Нужен ли сеанс?
6) Нужна-ли гетерогенность?

Может быть тебе подойтет решение с сырым TCP сокетом. В принципе можно начать с него. Или я-бы начал с Rest.
Если не хватит - искать другое.

Ну я и начал с TCP (Rest не подойдет, так как передаваться будет скорее всего JSON)... с вопросами я понял, буду перерывать обертки для TCP в поисках чего то нужного, в случае если не сработает то что я руками наваял. спасибо! :-)
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149090
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erНу я и начал с TCP (Rest не подойдет, так как передаваться будет скорее всего JSON)
Rest не помеха JSON Ябы сказал вообще... во френдах.
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39149285
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,
Всем голову заморочил, а тут банальный resr json и 99,9 всех проектов подобного рода.
...
Рейтинг: 0 / 0
сервер-клиент соединение (Spring MVC)
    #39150192
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBoJI4erНу я и начал с TCP (Rest не подойдет, так как передаваться будет скорее всего JSON)
Rest не помеха JSON Ябы сказал вообще... во френдах.

Rest меду приложениями? (WEB Servlet(Java Socket) <-> Console Application(Java Socket)) ... я чего то не понимаю или меня не правильно поняли?
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / сервер-клиент соединение (Spring MVC)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]