Използвайте съществуващо java приложение с tomcat & cie

Създадох Java приложение преди една година, което на практика е многонишков сокет сървър за уебсайт. Създадох това около урок, който разширих, за да правя много неща, включително мултиплейър игра на живо с Flash клиент. Урокът, който използвах, е следният (на френски): http://defaut.developpez.com/tutoriel/java/serveur/multithread/

Не е точно като урока, защото персонализирах всяка част от него, за да включва частта за играта и много други неща (конфигуриране, отстраняване на грешки и т.н.), но частта за "отваряне" на сокета е почти същата като в урока.

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

Освен това днес гледах много в Google, но не разбирам съвсем как да заредя приложението си в 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