Внедряване на моето приложение в съществуващ tomcat

Искам да разположа моето уеб приложение в истински сървър TOMCAT 6, който използва други приложения. Проблемът е, че когато поставя своя WAR-файл в webbApps, получавам грешка в лог файла и получавам грешка 404:

java.lang.UnsupportedClassVersionError: metier/utilisateurs/Compte :        Unsupported  major.minor version 51.0 (unable to load class metier.utilisateurs.  Compte)   at org.apache.catalina.loader. WebappClassLoader.findClassInternal(   WebappClassLoader.java:2822)...

Потърсих това в Google и открих, че няма съвместим JDK и компилатор на JSP.

Въпросът ми е: Мога ли да разположа приложението си в различен tomcat (7) сървър и да използвам 2 tomcat в същия сървър? Опитах това, но когато стартирам новия си tomcat (tomcat7/bin/startup), сървърът автоматично стартира стария tomcat!


person Achraf Elkari    schedule 25.08.2015    source източник
comment
Проблемът е, че JRE, използван от tomcat, е по-стар (да речем 1.6) от JRE, използван за компилиране на вашето приложение (да речем 1.7)   -  person Fran Montero    schedule 25.08.2015
comment
Също така, моля, добавете малко информация за вашата операционна система и как е инсталиран първият Tomcat.   -  person Adrian    schedule 25.08.2015
comment
да, мисля, че проблемът е, какво мога да направя, за да разреша проблема, няма да инсталирам друг JRE в сървъра, защото има други приложения, които го използват, така че може ли приложение, разработено със стар JRE, да работи с нов?   -  person Achraf Elkari    schedule 25.08.2015
comment
@Adrian - ОС е: сървър 2008 и намирам tomcat в „programe Files/Apache SOftware FOundation / tomacate 6.0“   -  person Achraf Elkari    schedule 25.08.2015
comment
Каква е точната версия на JRE, използвана от Tomcat, и тази, използвана за компилиране на приложението?   -  person Fran Montero    schedule 25.08.2015
comment
По-нова версия на java обикновено работи с военна компилация на по-стара версия на java. Изглежда обаче, че сте в другия случай: изградихте войната с java 7 и се опитвате да я стартирате в java 6. Можете да имате инсталирани множество копия на java и просто вашият контейнер (Tomcat 6) да сочи към екземплярът на Java 6, докато променливата JAVA_HOME за цялата машина сочи към Java 7. Вижте setenv.bat в Tomcat.   -  person Adrian B.    schedule 25.08.2015


Отговори (1)


Компилирахте вашата война с помощта на Java 7 и се опитвате да я стартирате в Tomcat 6 с Java 6. Конфигурирайте вашия Tomcat 6 да сочи към инсталацията на java 7 и трябва да работи и там.

Освен това е възможно да имате два Tomcat-а, работещи на една и съща машина, но на различни портове. Ако направите това, трябва да използвате балансьор на натоварването или прокси отпред, за да разпределите заявките. Въпреки това използването на две различни версии на контейнера на една и съща машина за стартиране на едно и също приложение е малко необичайно.

Що се отнася до факта, че стартирането на един Tomcat всъщност стартира другия, това вероятно се дължи на факта, че не сте конфигурирали CATALINA_HOME и той просто проверява обичайните местоположения за Tomcat и намира другия.

Вижте: https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt - Разширена конфигурация - Множество екземпляри на Tomcat

person Adrian B.    schedule 25.08.2015
comment
Благодаря, трябва да свърши работа, ще опитам съветите ви :) - person Achraf Elkari; 25.08.2015
comment
работи най-накрая, посочвам JDK7, но проблемът е, че виждам само началната страница и моите връзки (контролери) не работят :/ трябва ли да добавя нещо друго? - person Achraf Elkari; 25.08.2015
comment
което е специфично за вашето приложение. или те са твърдо кодирани и очакват да бъдат достъпни на определен url/порт, или все още виждате другия tomcat. - person Adrian B.; 25.08.2015