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
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.
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.
Petite chance: fermez Netbeans s'il est en cours d'exécution et réessayez.
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
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
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.
As-tu essayé
ps aux | grep glassfish
pour voir si d'autres instances sont en cours d'exécution?
-é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
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.
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