запуск Glassfish AS сообщит мне, что порт 4848 заблокирован (или любой порт, который я настраиваю). Но проверка портов не используется. Файервола нет.
root@ubuntu:~/glassfishv3/glassfish/bin# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2149/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2441/cupsd
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 2075/postgres
tcp6 0 0 :::22 :::* LISTEN 2149/sshd
tcp6 0 0 :::5432 :::* LISTEN 2075/postgres
udp 0 0 0.0.0.0:68 0.0.0.0:* 2082/dhclient3
udp 0 0 0.0.0.0:39256 0.0.0.0:* 2413/avahi-daemon:
udp 0 0 0.0.0.0:5353 0.0.0.0:* 2413/avahi-daemon:
Ubuntu 9.04 Linux ubuntu 2.6.28-11-generic # 42-Ubuntu SMP Пт, 17 апреля, 01:58:03 UTC 2009 x86_64 GNU / Linux (это виртуальный сервер).
Не совсем уверен, как подойти к этой проблеме.
Отсутствует файл etc / hosts!
java.net.UnknownHostException: ubuntu: ubuntu
at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
at com.sun.enterprise.util.net.NetUtils.getCanonicalHostName
Простая причина, иногда не стоит искать сложные проблемы!
добавьте 127.0.1.1 your-computer-name в ваш / etc / hosts
и попробуй еще раз!
наилучшие пожелания.
Как только у меня появилось подобное исключение, я публикую решение здесь на случай, если кому-то это понадобится: Существует процесс, уже использующий порт администратора 4848 - вероятно, это еще один экземпляр сервера GlassFish.
java.net.BindException: недопустимые аргументы: bind: 7676 = com.sun.enterprise.v3.services.impl.ServiceInitializerHandler
Вам придется изменить ключ «net.ipv6.bindv6only» с «1» на «0» в «/etc/sysctl.d/bindv6only.conf», который является параметром ядра, который позволяет приложениям IPV6 слушать только «запрос» IPV6 (запрос - это не выражение, но суть вы поняли)
У меня была эта проблема, и виновник был в / etc / hosts, там было две записи, и команда «hostname» вернула ссылку на вторую запись. Когда была сделана вторая запись, первая запись, например 127.0.1.1 my.domainname.com (или localhost), что устраняет проблему.
Для меня проблема оказалась в «имени хоста» из-за нескольких интерфейсов.
Бегать 'hostname'
а затем посмотрите, сможете ли вы проверить результаты
Бегать java -jar glassfish3/glassfish/modules/glassfish.jar
и проверьте подробные журналы
Установите имя хоста на "localhost" hostname localhost
Суть в том, что у вашего сервера проблемы с привязкой к имени хоста (а не к порту, как указано в сообщении об ошибке)
Еще одна причина, с которой я только что столкнулся, заключалась в том, что имя хоста и IP-адрес просто не совпадали:
hostname
XXXXXX
hostname -i
XXX.XXX.XXX.42
Номер IP, возвращаемый hostname -i
отличается от назначенного серверу. Я предполагаю, что это заставляет Glassfish попытаться привязать порт к старому IP-адресу, возвращенному hostname -i
, который, очевидно, потерпит неудачу.
Проблема была вызвана перемещением машины в другой сегмент сети после установки.
Как предлагает Insyte, точная ошибка может помочь нам в устранении неполадок.
Но в случае, если от Glassfish ничего не помогает, вы можете рассмотреть strace (1), чтобы вы могли найти системный вызов, который не работает, и ошибку, которую он вызывает. Вам может понадобиться -f для отслеживания разветвленных дочерних процессов, в зависимости от того, как ведет себя Glassfish.
Возможно ли, что он сообщает вам, что порт заблокирован брандмауэром? В этом случае вам нужно будет настроить правило, разрешающее входящие соединения.