Java настроена на обработку только ajax-запросов - PullRequest
0 голосов
/ 20 апреля 2011

Я хочу написать что-нибудь на Java, что бы вычислять что-то на лету.Итак, я хочу иметь Java-сервер, который может отвечать на запросы AJAX.Это все, что мне нужно.Я хочу, чтобы он был как можно более минималистичным.

Если вы хотите гипотетический сценарий, представьте, что я хочу написать услугу сумматора.Кое-что, что я могу передать JSON: {"action": "add", "args": [0, 1]} и получить {"sum": 1} обратно.Это все, но я хочу это в Интернете.Меня не волнует безопасность или что-то еще.Так что никаких сессий, ни https, ни чего-либо.

Я не хочу устанавливать сервер или использовать какую-то раздутую среду.Я думаю, что смогу добиться этого с помощью JNetPCap и чистой старой Java, но я бы тоже хотел избавиться от PCap.

Наверное, я спрашиваю, что в стандартной JRE или очень легкой банке может дать мне то, что я ищу.

Спасибо, ребята.

Изменить: Для целей упражнения представьте, что то, что я хочу написать, должно быть в состоянии работать на всем, что имеет Java установлен и имеет открытый порт.

Редактировать # 2: Оказалось, что весь мой мыслительный процесс имел фундаментальный недостаток: если у меня есть сервер, который обслуживает только JSON, нет возможности иметь страницу в том же домене, которая может безопасно запросить этот JSON без использованияJSONP или что-то.Итак, я буду использовать JLHTTP.Спасибо всем, кто принял участие.

Ответы [ 5 ]

1 голос
/ 20 апреля 2011

Это самый легкий функционирующий HTTP-сервер, написанный на Java, который я когда-либо встречал (всего 39 КБ).Я использовал его для тестирования интеграции, я понятия не имею, как он будет работать в качестве рабочего сервера.В частности, я не знаю, как он обрабатывает несколько одновременных запросов.

1 голос
/ 20 апреля 2011

Поскольку запросы / ответы AJAX основаны на HTTP, вам придется использовать какой-либо HTTP-сервер. Я бы порекомендовал Jetty , так как он довольно легкий, и, кажется, есть много примеров его использования.

0 голосов
/ 20 апреля 2011

Вы можете реализовать очень простой HTTP-сервер, содержащий около ста строк кода, используя Java nio.Я написал один, который я использовал для лекции по ведению журнала (в качестве замены отладки по println).Концептуально он был похож на ваш пример Server.java, но использовал пакеты nio.Предполагая, что вы не хотите писать свои собственные или хотите просто пример, взгляните на Raining Sockets .Далее вам нужно что-то для анализа JSON.Вы можете использовать Gson (без ссылки, потому что моя репутация SO недостаточно высока), или снова написать свою собственную.Если вы пишете свой собственный, вы можете использовать инструмент генератора синтаксических анализаторов, такой как ANTLR .ANTLR также может помочь, если вы хотите поддерживать HTTP-спецификацию с большей строгостью, чем просто соответствие HTTP GET.

0 голосов
/ 20 апреля 2011

Я склоняюсь к чему-то вроде этого:

http://examples.oreilly.com/9781565923713/Server.java

Я не уверен, что можно обрабатывать запросы AJAX через него или же JRE имеет стандартные библиотеки для чтения запросов из сокетов.

0 голосов
/ 20 апреля 2011

Я думаю, что вы могли бы слишком быстро отклонить "раздутые рамки". То, что вы пытаетесь сделать, это реализовать - как минимум - что-то, способное получать, понимать и отвечать на запросы HTTP GET, используя JSON для передачи сообщений. Хотя это можно сделать с помощью кода, полностью родного для вашей работы на фабрике jdk, вам, вероятно, в конечном итоге придется написать гораздо больше кода, чтобы выполнить это, чем если бы вы следовали короткому руководству по Tomcat или Jetty. Это то, что я предполагаю, что цель комментария @ jcm была.

Но если вы действительно хотите просто сделать это и не думать об этом, все, что вам действительно нужно сделать, это следовать учебнику, подобному этому: http://www.youtube.com/watch?v=EOkN5IPoJVs

Видео использует tomcat и eclipse. Версия более старая, но она достаточно близка, так что вы можете поиграть и разобраться. Я только рекомендую Tomcat, потому что это то, что я знаю; но Jetty будет работать отлично, как предложил @David, и я уверен, что для этого есть множество простых руководств.

Кроме того, как только вы запустите свой сервлет и начнете работать, я думаю, вы обнаружите, что анализ ваших json-запросов как строк раздражает. Я бы порекомендовал посмотреть на гсон . Это действительно простой способ отобразить строки JSON в POJO.

Суть того, что я говорю, заключается в том, что все это изначально с использованием Java и без какого-либо программного обеспечения сторонних производителей может быть кратчайшим путем, но не самым простым. Точно так же, как везти свою машину в дом своих друзей можно проехать 3 мили, но все же проще и быстрее, чем проехать 1 милю по лесу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...