Apache Tomcat в Amazon EC2 Ошибка: не удалось найти org.apache.catalina.util.ServerInfo

1

Я следил за инструкцией по установке, доступной здесь: http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-basic.html

Я запускаю экземпляр AWS EC2 с Amazon Linux AMI (Amazon Machine Image): Amazon Linux AMI 2014.03.2 (HVM) - ami-d13845e1

Я установил Java 7 на машине:

${JAVA_HOME}/bin/java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (amzn-2.5.1.2.43.amzn1-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

И я установил Tomcat7. Когда я запустил сервер и попытался подключиться к своему адресу компьютера на порт 8080, я получаю пустую страницу или запрос просто зависает. Я установил все пакеты Tomcat7 (см. Шаг № 5 в статье, связанный в начале этого сообщения), и поэтому я должен увидеть домашнюю страницу Tomcat по умолчанию (я был бы даже доволен кодом ответа 400!).

Я могу подтвердить, что моя группа безопасности верна (я ранее запускал Jetty с порта 8080 с той же группой безопасности). Я также выполнил команду руководства, чтобы проверить, работает ли tomcat7 и слушает порт 8080:

$ sudo fuser -v -n tcp 8080 
                     USER        PID ACCESS COMMAND
8080/tcp:            tomcat     1669 F.... java

Когда я попытался запустить команду версии, я получил очень странный ответ:

$ sudo service tomcat7 version
/usr/sbin/tomcat7: line 21: .: /etc/sysconfig/: is a directory
/usr/sbin/tomcat7: line 25: cd: HOME not set
Error: Could not find or load main class org.apache.catalina.util.ServerInfo

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

Кто-нибудь сталкивается с подобным? У кого-нибудь есть идеи, что может быть неправильным? Кто-нибудь еще печально, когда они следуют за замечательным гидом, чтобы сделать что-то "легкое", и все равно не работает? : -P

В качестве примечания, я успешно установил Tomcat7 на своей локальной машине Windows7 через файл.exe, и он прекрасно работает. Я пытаюсь развиваться локально, а затем нажимаю на свою веб-службу Amazon, но мне кажется, что я должен сначала решить эту проблему.

Теги:
amazon-web-services
tomcat
amazon-ec2
catalina

1 ответ

2
Лучший ответ

Я могу подтвердить проблему, с которой вы столкнулись. Тем не менее, я отлично работал с Oracle JDK. Я выполнил следующие шаги:

создать экземпляр из ami-d13845e1

удалить существующий OpenJDK: yum -y remove java-1.7.0-openjdk

Загрузите и установите Oracle JDK: http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.rpm

Примечание: загрузка Oracle JDK сама по себе является болью. его просто не весело загружать его с помощью команды Linux wget. Oracle заставляет вас принять условия. Поэтому выясните свой собственный способ загрузки этого файла.

Установлен Oracle JDK: rpm -ivh jdk-7u65-linux-x64.rpm

Проверьте версию java:

# java -version
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

Проверьте выше вывод, что он говорит "HotSpot"....

Как только это будет сделано, я установил tomcat (http://www.trieuvan.com/apache/tomcat/tomcat-7/v7.0.55/bin/apache-tomcat-7.0.55.tar.gz) из источника.

BTW, я всегда использую netstat -anp | grep 8080 netstat -anp | grep 8080 вместо user -v -n tcp 8080.

Суть в том, что I resolved this issue by removing OpenJDK and installing Oracle JDK. Это суть.

Если вам нужны шаги по установке tomcat из источника, то дайте мне знать.

EDIT: в соответствии с запросом. Ниже приведены шаги по установке Tomcat из источника:

Загрузите Tomcat и переместите его в /usr/share/:

# wget http://www.trieuvan.com/apache/tomcat/tomcat-7/v7.0.55/bin/apache-tomcat-7.0.55.tar.gz
# tar -xvzf apache-tomcat-7.0.55.tar.gz
# mv apache-tomcat-7.0.55 /usr/share/

Создайте сценарий /etc/init.d/tomcat как /etc/init.d/tomcat ниже:

#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/default/
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/share/apache-tomcat-7.0.55

case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0

Выполните команды ниже (они должны быть понятны):

# chmod 755 /etc/init.d/tomcat
# chkconfig  --add tomcat
# chkconfig  tomcat on
# chkconfig  --list tomcat

Я обычно останавливаю iptables на время, чтобы избежать ненужных проблем:

# service iptables stop

Запустите Tomcat:

# service tomcat start

Убедитесь, что tomcat запущен:

# netstat -anp | grep 8080
tcp        0      0 :::8080                     :::*                        LISTEN      1704/java

Это !!

Существуют различные методы установки tomcat. Я всегда следую этому методу для установки и запуска tomcat как службы.

  • 0
    Вы можете отредактировать свой ответ для будущих посетителей. Инструкция «загрузить и установить Oracle JDK» содержит ссылки на установку tomcat. Re Примечание: я использовал FTP для передачи, а затем установить Java. Очень просто :-) Теперь я смог запутаться в установке Tomcat из исходного кода, но я не мог понять, как заставить его работать как сервис. Я свободно следовал этому руководству ( wiki.jasig.org/display/UPM40/Install+Tomcat ), и оно работает, когда я запускаю $TOMCAT_HOME/bin/startup.sh но я хотел бы иметь возможность использовать service tomcat7 start . Можете ли вы предоставить руководство по установке?
  • 0
    Я думаю, что я собираюсь попробовать еще кое-что, связанное с вашим базовым предложением: удалить JDK, который есть у Amazon в Linux, и установить JDK и Tomcat напрямую из исходного кода (что в основном потому, что доступные пакеты Amazon повреждены ...) Как оказалось Часть II руководства, которое я связал, по сути, такова, поэтому я собираюсь попробовать это завтра. Я дам вам знать, как это происходит, но я буду продолжать проверять другие ответы на случай, если кто-то сможет исправить пакетные предложения Amazon.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню