Развертывание моего приложения в существующем коте

Я хочу развернуть свое веб-приложение на реальном сервере 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)...

Я погуглил и обнаружил, что нет совместимого JDK и компилятора JSP.

Мой вопрос: могу ли я развернуть свое приложение на другом сервере tomcat (7) и использовать 2 tomcat на одном сервере? Я пробовал это, но когда я запускаю свой новый кот (tomcat7/bin/startup), сервер автоматически запускает старый кот!


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, и я нахожу кота в «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-адресу/порту, либо вы все еще видите другого кота. - person Adrian B.; 25.08.2015