Comment activer JMX sur la télécommande Glassfish server pour l'accès avec jconsole?
Je tiens à surveiller à distance serveur glassfish. J'ai activé la Connexion JMX dans domain.xml:
<jmx-connector accept-all="true" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false">
Mais cela n'a pas aidé. Je ne peut toujours pas se connecter au serveur avec JConsole. Puis j'ai trouvé la solution - j'ai besoin de spécifier les propriétés JVM dans domain.xml pour ouvrir 8686 port pour la connexion à distance.
J'ai donc ajouté ces lignes dans java-config section:
<jvm-options>-Dcom.sun.management.jmxremote</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.port=8686</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.local.only=false</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.authenticate=false</jvm-options>
Mais maintenant, quand je suis démarrage du serveur, j'obtiens les erreurs suivantes:
N'a pas pu charger Logmanager
"com.soleil.de l'entreprise.serveur.la journalisation.ServerLogManager"
java.lang.ClassNotFoundException:
com.soleil.de l'entreprise.serveur.la journalisation.ServerLogManager
à java.net.URLClassLoader$1.exécuter(URLClassLoader.java:200)
à java.de sécurité.AccessController.doPrivileged(Native
La méthode)
à java.net.URLClassLoader.findClass(URLClassLoader.java:188)
à java.lang.Chargeur de classe.loadClass(ClassLoader.java:307)
au coucher du soleil.misc.Lanceur$AppClassLoader.loadClass(Lanceur.java:301)
à java.lang.Chargeur de classe.loadClass(ClassLoader.java:252)
à java.util.la journalisation.LogManager$1.exécuter(LogManager.java:166)
à java.de sécurité.AccessController.doPrivileged(Native
La méthode)
à java.util.la journalisation.LogManager.(LogManager.java:156)
à java.util.la journalisation.Enregistreur.getLogger(Logger.java:273)
au coucher du soleil.de la gestion.snmp.util.MibLogger.(MibLogger.java:57)
au coucher du soleil.de la gestion.snmp.util.MibLogger.(MibLogger.java:42)
au coucher du soleil.de la gestion.jmxremote.ConnectorBootstrap.(ConnectorBootstrap.java:760)
au coucher du soleil.de la gestion.De l'Agent.startAgent(de l'Agent.java:127)
au coucher du soleil.de la gestion.De l'Agent.startAgent(de l'Agent.java:239)
javax.de la gestion.JMRuntimeException:
Échec du chargement de MBeanServerBuilder
classe
com.soleil.de l'entreprise.admin.serveur.de base.jmx.AppServerMBeanServerBuilder:
java.lang.ClassNotFoundException:
com.soleil.de l'entreprise.admin.serveur.de base.jmx.AppServerMBeanServerBuilder
au javax.de la gestion.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:480)
au javax.de la gestion.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory.java:511)
au javax.de la gestion.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298)
au javax.de la gestion.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213)
au javax.de la gestion.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:174)
au coucher du soleil.de la gestion.ManagementFactory.createPlatformMBeanServer(ManagementFactory.java:302)
à java.lang.de la gestion.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504)
au coucher du soleil.de la gestion.jmxremote.ConnectorBootstrap.initialiser(ConnectorBootstrap.java:392)
au coucher du soleil.de la gestion.De l'Agent.startAgent(de l'Agent.java:127)
au coucher du soleil.de la gestion.De l'Agent.startAgent(de l'Agent.java:239)
Causés par:
java.lang.ClassNotFoundException:
com.soleil.de l'entreprise.admin.serveur.de base.jmx.AppServerMBeanServerBuilder
à java.net.URLClassLoader$1.exécuter(URLClassLoader.java:200)
à java.de sécurité.AccessController.doPrivileged(Native
La méthode)
à java.net.URLClassLoader.findClass(URLClassLoader.java:188)
à java.lang.Chargeur de classe.loadClass(ClassLoader.java:307)
au coucher du soleil.misc.Lanceur$AppClassLoader.loadClass(Lanceur.java:301)
à java.lang.Chargeur de classe.loadClass(ClassLoader.java:252)
au javax.de la gestion.MBeanServerFactory.loadBuilderClass(MBeanServerFactory.java:423)
au javax.de la gestion.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:465)
... 9 plus Exception levée par l'agent :
javax.de la gestion.JMRuntimeException:
Échec du chargement de MBeanServerBuilder
classe
com.soleil.de l'entreprise.admin.serveur.de base.jmx.AppServerMBeanServerBuilder:
java.lang.ClassNotFoundException:
com.soleil.de l'entreprise.admin.serveur.de base.jmx.AppServerMBeanServerBuilder
Comment puis-je résoudre le problème?
Merci d'avance.
OriginalL'auteur Pavel | 2009-08-05
Vous devez vous connecter pour publier un commentaire.
Des mesures pour résoudre le problème sont:
1. utiliser les paramètres par défaut
2. ajoutez -Djava.rmi.serveur.hostname= dans les Options de la JVM de l'instance de GlassFish.
Cela signifie garder les mêmes qu'ils étaient out-of-the-box. Si le JMX paramètres existe - laissez-le être, si elles ne sont pas - ne pas les ajouter.
OriginalL'auteur Pavel
Encore mystique comportement, mais avec ces 4 paramètres, vous pouvez vous connecter à la JVM de l'exécution de Glassfish (ajouter à domain.xml dans la console d'administration, redémarrage nécessaire)
Méfiez-vous ! Ce n'est pas sûr, comme n'importe qui peut maintenant se connecter à un jconsole !
De l'OMI, ce n'est pas le Glassfish manière, qui consiste à utiliser le connecteur JMX.
(Ci-dessus fonctionne GF 3.1)
OriginalL'auteur javadude
J'ai fini par mettre l'option suivante pour s'assurer que JMX avec Glassfish est pare-feu de l'environnement:
Où XXXX est le numéro de port que vous utilisez le pare-feu avec le serveur d'application configuré JMX numéro de port (généralement 8686).
Lire la suite dans ce billet de blog. Notez que cette fonctionnalité nécessite une version plus récente de Glassfish. J'ai utilisé avec succès avec Glassfish 2.1.1.
OriginalL'auteur tronda
N'est-il pas GlassFish question 1409?
OriginalL'auteur Grzegorz Oledzki
Si l'exécution de votre application à l'intérieur de Glassfish serveur d'application, il suffit de lancer le suivant asadmin de commande, vous devez redémarrer tous les serveurs en marche pour que la modification prenne effet.
./asadmin enable-secure-admin
Il y a des configurations de serveur Glassfish pour activer plus de sécurité, voir plus à La connexion à distance à Glassfish par JMX.
Vous avez besoin de suivre les étapes sur options JVM, ce sont des instructions pour les applications Java en général. Pour une application Java qui fonctionne avec le serveur d'application Glassfish, simplement à l'aide de la asadm de commande. Qui m'a sauvé beaucoup de temps!
** Une autre note, avec seulement les paramètres à l'aide des options JVM, Glassfish serait de ne pas démarrer, avec les exceptions d'exécution.
** Je suis en utilisant GF3.1.2 et au-dessus, et Java 7.
OriginalL'auteur Yu Chen