web-dev-qa-db-fra.com

Impossible de démarrer Glassfish 3.1 même si le port n'est pas occupé

Je ne parviens pas à démarrer Glassfish 3.1 sur un serveur "Squeeze" de Debian récemment installé. Il s'agit d'un serveur de test qui a été configuré et l'installation Glassfish a été copiée d'un serveur actif vers cet autre serveur.

J'ai essayé de courir:

# ./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.

J'ai également essayé de redémarrer le domaine parce que je pensais qu'il fonctionnait peut-être:

# ./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.

À ce stade, j’ai confirmé que Glassfish ne fonctionnait pas, j’ai donc vérifié si le port 4848 était occupé:

# netstat -aon | grep 4848

qui n'a rien rendu.

Je soupçonne que Glassfish a été copié à partir du serveur source alors que Glassfish était toujours en cours d'exécution. Peut-être y a-t-il également une sorte de fichier pid ou de fichier de verrouillage copié.

Avez-vous des suggestions sur la façon de commencer Glassfish?

Modifier

Voici le fichier server.log de domain1 après l'exécution de la commande 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

Tout d’abord, vérifiez la configuration du fichier $ HOSTNAME et du fichier etc/hosts, et n’essayez pas de trouver un problème avec ps aux ou netstat -aon.

> echo $HOSTNAME

réponse> serveur (ou etc)

> cat /etc/hosts

en réponse si vous ne pouvez pas voir "$ HOSTNAME" après 127.0.0.1, ajoutez-le à la fin de la chaîne. Réessayez d'exécuter la commande start-domain. 

38
Emre Karataşoğlu

Vérifiez votre fichier/etc/hosts si le nom d'hôte actuel se traduit par une adresse IP valide. Je pense que quelque chose est mal configuré ou si la propriété intellectuelle n'existe pas.

Lorsque je l'ai changé (dans mon cas) à l'adresse 127.0.0.1 (bien sûr, il pourrait s'agir de n'importe quelle adresse IP autre que l'adresse IP associée et fonctionnelle), le glassfish pourrait être redémarré correctement.

6
Miklos Krivan

Petite chance: fermez Netbeans s'il est en cours d'exécution et réessayez.

1
iuiz

J'ai rencontré un problème similaire dans centOS lorsque j'ai défini le nom d'hôte pour mon linux. Définissez votre nom d'hôte sur localhost, votre problème sera probablement résolu.

commande: nomhôte localhost ou

éditez le fichier/etc/sysconfig/network dans Linux basé sur RedHat.

bonne chance

0
Abbas Tofighi

le problème que le fichier/etc/Host n’a pas le nom de PC avec IP ajoute cette ligne dans le fichier.

ip_PC nom_PC 192.144.168.2 serveur défectueux

Cela marche

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

0
user503601

Récemment (applicable uniquement sur Amazon Web Services-AWS), j'ai constaté que le lancement d'un serveur dans VPC nécessitait un peu de configuration supplémentaire (une seule fois) pour démarrer. Un indice clé:

 nslookup `hostname`

devrait marcher. Si cela ne fonctionne pas, c'est probablement la raison.

Vous pouvez soit: 1) lancer un serveur dans EC2-classic 2) configurer votre VPC/hôte pour pouvoir exécuter la commande ci-dessus avec succès.

J'espère que cela pourra aider.

0
Paul Jowett

As-tu essayé

ps aux | grep glassfish

pour voir si d'autres instances sont en cours d'exécution?

0
Garrett Hall

-étape 1 démarrer glassfish - étape 2 changer le nom d'hôte

résultat: erreur de démarrage de glassfish

solution: 1 quitte le nom d'hôte et quitte simplement localhost

2 démarrer Glassfish 3 arrêter Glassfish

4 ajouter le nom d'hôte

5 commencez glassfish Et ça marche !!!

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

$ glassfish4/bin/asadmin start-domain Attente du démarrage du domaine1 ....... Démarrage réussi du domaine: domaine1

0
user215983

Lorsque j'ai rencontré cette erreur, il s'est avéré que la machine n'était pas connectée au réseau et ne pouvait donc pas se lier à l'adresse IP définie dans /etc/hosts et /etc/sysconfig/network-scripts/ifcfg-eth0 (j'utilise CentOS). Dès que j'ai activé le réseau (le mien est une VM), cela a bien fonctionné.

Le message était donc trompeur dans mon cas: rien ne m'écoutait (pour autant que glassfish puisse le dire) sur le port 4848 qui écoutait l'adresse IP souhaitée, mais il y avait évidemment une erreur en essayant de se connecter à ce port car la machine elle-même n'était pas connecté au réseau.

0
Richard Wiseman

Je résous ce problème en ajoutant un nouveau nom d’hôte à /etc/Host[.____.¹il s’agit du contenu de mon fichier hôte:

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

puis essayez de recommencer votre asadmin

0
Mozquito