Используйте существующее Java-приложение с tomcat и cie

Год назад я создал Java-приложение, которое в основном представляет собой многопоточный сервер сокетов для веб-сайта. Я построил это на основе учебника, который я расширил, чтобы делать много вещей, включая живую многопользовательскую игру с клиентом Flash. Я использовал следующее руководство (на французском языке): http://defaut.developpez.com/tutoriel/java/serveur/multithread/

Это не совсем похоже на учебник, потому что я настроил каждую его часть, включив в нее игровую часть и многое другое (конфигурацию, отладку и т. д.), но часть «открытия» сокета примерно такая же, как и в учебнике.

В любом случае... Пока все отлично работает. Java-приложение (файл .jar) работает на моем выделенном сервере в качестве демона (используя команду «java -jar file.jar &» внутри сценария .sh). Но по какой-то технической и личной причине я больше не смогу этого делать, потому что мне нужно перейти на более дешевый хостинг. (По сути, я делил сервер с некоторыми друзьями, но...) Куда бы я ни посмотрел, единственное решение для хостинга, которое я мог найти, это услуги, предлагающие Tomcat или аналогичные решения.

Более того, я сегодня много смотрел в гугле, но не совсем понимаю, как загрузить свое приложение в Tomcat (если это вообще возможно) без необходимости заново все переписывать. Я также не знаю, есть ли план хостинга, отличный от выделенного или виртуального выделенного, который позволяет мне действовать, как раньше.

Может ли кто-нибудь указать мне на сайт, объясняющий, как я могу реализовать свой существующий .jar внутри Tomcat (или аналогичного)? Или, если у кого-то есть другое решение, чтобы предложить мне....?

Спасибо


person Louis Charette    schedule 13.09.2010    source источник


Ответы (2)


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

Tomcat означает порт сервера и HTTP.

Вам придется переписать свою игру как один или несколько сервлетов для работы через HTTP и развертывания на Tomcat.

person duffymo    schedule 13.09.2010
comment
Не могли бы вы (или кто-то другой) указать мне пример кода или учебник? Я все еще потерян.... Спасибо! - person Louis Charette; 13.09.2010

Попробуйте что-то вроде этого:

http://code.google.com/p/cool-summer/source/browse/trunk/NewCOSUpload/src/com/oreilly/servlet/DaemonHttpServlet.java?spec=svn28&r=28

Он создает поток в init(), и поток выполняет всю работу с сокетом. Не забудьте пометить сервлет как загружаемый при запуске.

person Lawrence Kesteloot    schedule 27.05.2012