it-swarm.it

Impossibile avviare Glassfish 3.1 anche se la porta non è occupata

Ho problemi ad avviare Glassfish 3.1 su un server Debian "Squeeze" appena configurato. Questo è un server di test che è stato configurato e l'installazione Glassfish è stata copiata da un server funzionante a questo altro server.

Ho provato a correre:

# ./asadmin start-domain
There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server.
Command start-domain failed.

Ho anche provato a riavviare il dominio perché pensavo che forse era in esecuzione:

# ./asadmin restart-domain
Server is not running, will attempt to start it...
There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server.
Command restart-domain failed.

A questo punto ho confermato che Glassfish non era in esecuzione quindi ho controllato per vedere se la porta 4848 era occupata:

# netstat -aon | grep 4848

che non ha restituito nulla.

Ho il sospetto che Glassfish sia stata copiata dal server di origine mentre Glassfish era ancora in esecuzione. Forse c'è una sorta di file pid o di blocco che è stato copiato anche sopra.

Qualche suggerimento su come ottenere Glassfish per iniziare?

Modificare

Ecco il file server.log di domain1 dopo l'esecuzione del comando asadmin start-domain:

Sep 12, 2011 11:18:02 AM com.Sun.enterprise.admin.launcher.GFLauncherLogger info
INFO: JVM invocation command line:
/opt/glassfish3/jdk/bin/Java
-cp
/opt/glassfish3/glassfish/modules/glassfish.jar
-XX:+UnlockDiagnosticVMOptions
-XX:MaxPermSize=192m
-XX:NewRatio=2
-Xmx512m
-client
-javaagent:/opt/glassfish3/glassfish/lib/monitor/flashlight-agent.jar
-Dosgi.Shell.telnet.maxconn=1
-Djdbc.drivers=org.Apache.derby.jdbc.ClientDriver
-Dfelix.fileinstall.disableConfigSave=false
-Dfelix.fileinstall.dir=/opt/glassfish3/glassfish/modules/autostart/
-Djavax.net.ssl.keyStore=/opt/glassfish3/glassfish/domains/domain1/config/keystore.jks
-Dosgi.Shell.telnet.port=6666
-Djava.security.policy=/opt/glassfish3/glassfish/domains/domain1/config/server.policy
-Dfelix.fileinstall.log.level=2
-Dfelix.fileinstall.poll=5000
-Dcom.Sun.aas.instanceRoot=/opt/glassfish3/glassfish/domains/domain1
-Dosgi.Shell.telnet.ip=127.0.0.1
-Dcom.Sun.enterprise.config.config_environment_factory_class=com.Sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory
-Djava.endorsed.dirs=/opt/glassfish3/glassfish/modules/endorsed:/opt/glassfish3/glassfish/lib/endorsed
-Dcom.Sun.aas.installRoot=/opt/glassfish3/glassfish
-Djava.ext.dirs=/opt/glassfish3/jdk/lib/ext:/opt/glassfish3/jdk/jre/lib/ext:/opt/glassfish3/glassfish/domains/domain1/lib/ext
-Dfelix.fileinstall.bundles.startTransient=true
-Dfelix.fileinstall.bundles.new.start=true
-Djavax.net.ssl.trustStore=/opt/glassfish3/glassfish/domains/domain1/config/cacerts.jks
-Dorg.glassfish.additionalOSGiBundlesToStart=org.Apache.felix.Shell,org.Apache.felix.gogo.runtime,org.Apache.felix.gogo.Shell,org.Apache.felix.gogo.command
-Dcom.Sun.enterprise.security.httpsOutboundKeyAlias=s1as
-DANTLR_USE_DIRECT_CLASS_LOADING=true
-Djava.security.auth.login.config=/opt/glassfish3/glassfish/domains/domain1/config/login.conf
-Dgosh.args=--nointeractive
-Djava.library.path=/opt/glassfish3/glassfish/lib:/opt/glassfish3/jdk/jre/lib/AMD64/server:/opt/glassfish3/jdk/jre/lib/AMD64:/opt/glassfish3/jdk/lib/AMD64:/usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib
com.Sun.enterprise.glassfish.bootstrap.ASMain
-domainname
domain1
-asadmin-args
--Host,,,localhost,,,--port,,,4848,,,--secure=false,,,--terse=false,,,--echo=false,,,--interactive=true,,,start-domain,,,--verbose=false,,,--debug=false,,,--domaindir,,,/opt/glassfish3/glassfish/domains,,,domain1
-instancename
server
-verbose
false
-debug
false
-asadmin-classpath
/opt/glassfish3/glassfish/modules/admin-cli.jar
-asadmin-classname
com.Sun.enterprise.admin.cli.AsadminMain
-upgrade
false
-type
DAS
-domaindir
/opt/glassfish3/glassfish/domains/domain1
-read-stdin
true
20
Mark Bouchard

Prima di tutto controlla il $ HOSTNAME e la configurazione del file etc/hosts, non provare a trovare un problema con ps aux o netstat -aon.

> echo $HOSTNAME

risposta> server (o ecc.)

> cat /etc/hosts

in risposta se non è possibile visualizzare "$ HOSTNAME" dopo 127.0.0.1, quindi aggiungerlo alla fine della stringa. Riprovare a eseguire il comando start-domain. 

38

Controlla il tuo file/etc/hosts se il nome host corrente si traduce in un indirizzo IP valido. Penso che qualcosa non sia configurato correttamente o che l'IP non esista.

Quando l'ho cambiato (nella mia situazione) all'indirizzo 127.0.0.1 (ovviamente potrebbe essere qualsiasi altro ma l'indirizzo IP funzionante e collegato), il glassfish potrebbe essere riavviato correttamente.

6
Miklos Krivan

Piccola possibilità: chiudere Netbeans se è in esecuzione e riprovare.

1
iuiz

Ho riscontrato un problema simile in centOS quando ho impostato hostname per il mio linux. Imposta il tuo hostname su localhost, probabilmente il tuo problema sarà risolto.

comando: hostname localhost o

modifica/etc/sysconfig/file di rete in Linux basato su redHat.

in bocca al lupo

0
Abbas Tofighi

il problema che il file/etc/Host havent nome PC con IP aggiunge questa riga nel file.

ip_PC name_PC 192.144.168.2 miserver

Questo funziona

http://jvm-Java.blogspot.com.es/2010/12/glassfish-v3-linux-process-already.html

0
user503601

Recentemente (applicabile solo su Amazon Web Services-AWS), ho scoperto che l'avvio di un server in VPC richiede un po 'di configurazione extra (una tantum) per iniziare. Un indizio chiave:

 nslookup `hostname`

dovrebbe funzionare. Se non funziona, è probabile che sia la ragione.

È possibile: 1) avviare un server in EC2-classic 2) configurare il proprio VPC/host in modo che possa eseguire correttamente il comando in alto.

Spero che sia d'aiuto.

0
Paul Jowett

Hai provato

ps aux | grep glassfish

per vedere se altre istanze sono in esecuzione?

0
Garrett Hall

-step 1 start glassfish - step 2 cambia il nome dell'host

risultato: errore nell'avvio del glassfish

soluzione: 1 esci dal nome host e lascia il localhost

2 start glassfish 3 stop glassfish

4 aggiungi il nome host

5 start glassfish E funziona !!!

$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.2 YOURHOSTNAME

$ glassfish4/bin/asadmin start-domain In attesa che il dominio1 inizi ....... Avviato correttamente il dominio: domain1

0
user215983

Quando ho riscontrato questo errore, risultava che la macchina non era connessa alla rete e quindi non poteva collegarsi all'indirizzo IP impostato in /etc/hosts e /etc/sysconfig/network-scripts/ifcfg-eth0 (sto usando CentOS). Appena ho abilitato la rete (la mia è una VM) ha funzionato bene.

Quindi il messaggio era fuorviante nel mio caso: non c'era (per quanto lo sapeva il glassfish) qualcosa che ascoltava sulla porta 4848 sull'indirizzo IP desiderato, ma c'era evidentemente un errore quando si cercava di collegarsi a quella porta perché la macchina stessa non era 'collegato alla rete.

0
Richard Wiseman

Risolvo questo aggiungendo un nuovo hostname a /etc/Host questo è il contenuto del mio file Host:

127.0.0.1   localhost
127.0.1.1   mozquito     <--- this is what I add

e quindi prova a ricominciare il tuo asadmin

0
Mozquito