كيفية تفعيل JMX عن بعد Glassfish ملقم الوصول مع jconsole?

StackOverflow https://stackoverflow.com/questions/1231868

  •  22-07-2019
  •  | 
  •  

سؤال

أود أن ترصد عن بعد glassfish الخادم.لقد مكنت JMX اتصال في 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">

ولكن هذا لم يساعد.أنا لا تزال لا يمكن الاتصال إلى الملقم مع JConsole.ثم لقد وجدت الحل أنا بحاجة إلى تحديد JVM خصائص في domain.xml لفتح 8686 منفذ اتصال عن بعد.لذلك أضفت هذه السطور في جافا-config القسم:

<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>

ولكن الآن أنا عندما بدأت الخادم ، أنا الحصول على الأخطاء التالية:

لا يمكن تحميل Logmanager "com.الشمس.المؤسسة.الملقم.قطع الأشجار.ServerLogManager" java.لانغ.ClassNotFoundException:com.الشمس.المؤسسة.الملقم.قطع الأشجار.ServerLogManager في جافا.صافي.URLClassLoader 1 دولار.تشغيل(URLClassLoader.java:200) في جافا.الأمن.AccessController.doPrivileged(أصلي طريقة) في جافا.صافي.URLClassLoader.findClass(URLClassLoader.java:188) في جافا.لانغ.ClassLoader.loadClass(ClassLoader.java:307) في الشمس.متفرقات.قاذفة$AppClassLoader.loadClass(قاذفة.java:301) في جافا.لانغ.ClassLoader.loadClass(ClassLoader.java:252) في جافا.util.قطع الأشجار.LogManager 1 دولار.تشغيل(LogManager.java:166) في جافا.الأمن.AccessController.doPrivileged(أصلي طريقة) في جافا.util.قطع الأشجار.LogManager.(LogManager.java:156) في جافا.util.قطع الأشجار.المسجل.getLogger(مسجل.java:273) في الشمس.إدارة.snmp.util.MibLogger.(MibLogger.java:57) في الشمس.إدارة.snmp.util.MibLogger.(MibLogger.java:42) في الشمس.إدارة.jmxremote.ConnectorBootstrap.(ConnectorBootstrap.java:760) في الشمس.إدارة.وكيل.startAgent(العميل.java:127) في الشمس.إدارة.وكيل.startAgent(العميل.java:239) javax.إدارة.JMRuntimeException:فشل تحميل MBeanServerBuilder الدرجة com.الشمس.المؤسسة.المشرف.الملقم.الأساسية.jmx.AppServerMBeanServerBuilder:java.لانغ.ClassNotFoundException:com.الشمس.المؤسسة.المشرف.الملقم.الأساسية.jmx.AppServerMBeanServerBuilder في javax.إدارة.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:480) في javax.إدارة.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory.java:511) في javax.إدارة.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298) في javax.إدارة.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213) في javax.إدارة.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:174) في الشمس.إدارة.ManagementFactory.createPlatformMBeanServer(ManagementFactory.java:302) في جافا.لانغ.إدارة.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504) في الشمس.إدارة.jmxremote.ConnectorBootstrap.تهيئة(ConnectorBootstrap.java:392) في الشمس.إدارة.وكيل.startAgent(العميل.java:127) في الشمس.إدارة.وكيل.startAgent(العميل.java:239) سببها:java.لانغ.ClassNotFoundException:com.الشمس.المؤسسة.المشرف.الملقم.الأساسية.jmx.AppServerMBeanServerBuilder في جافا.صافي.URLClassLoader 1 دولار.تشغيل(URLClassLoader.java:200) في جافا.الأمن.AccessController.doPrivileged(أصلي طريقة) في جافا.صافي.URLClassLoader.findClass(URLClassLoader.java:188) في جافا.لانغ.ClassLoader.loadClass(ClassLoader.java:307) في الشمس.متفرقات.قاذفة$AppClassLoader.loadClass(قاذفة.java:301) في جافا.لانغ.ClassLoader.loadClass(ClassLoader.java:252) في javax.إدارة.MBeanServerFactory.loadBuilderClass(MBeanServerFactory.java:423) في javax.إدارة.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:465) ...9 أكثر استثناء القيت من قبل العميل :javax.إدارة.JMRuntimeException:فشل تحميل MBeanServerBuilder الدرجة com.الشمس.المؤسسة.المشرف.الملقم.الأساسية.jmx.AppServerMBeanServerBuilder:java.لانغ.ClassNotFoundException:com.الشمس.المؤسسة.المشرف.الملقم.الأساسية.jmx.AppServerMBeanServerBuilder

كيف يمكنني حل هذه المشكلة ؟

شكرا مقدما.

هل كانت مفيدة؟

المحلول

خطوات حل المشكلة:1.استخدام الإعدادات الافتراضية 2.إضافة Djava.rmi.الملقم.hostname= في JVM الخيارات مثيل GlassFish.

نصائح أخرى

لا يزال صوفية السلوك ، ولكن مع هذه 4 إعدادات يمكنك الاتصال JVM تشغيل Glassfish (إضافة إلى domain.xml في وحدة تحكم المشرف, مطلوب إعادة تشغيل)

-Djava.rmi.server.hostname=yourhost
-Dcom.sun.management.jmxremote.port=8686
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

حذار !هذه ليست آمنة ، مثل أي شخص الآن يمكن توصيل jconsole إلى ذلك !

المنظمة البحرية الدولية ليس هذا هو Glassfish الطريقة التي يستخدم JMX الموصل.

(أعلاه يعمل في GF 3.1)

انتهى بي الأمر تحديد الخيار التالي لضمان JMX مع Glassfish هو جدار الحماية ودية:

<jvm-options>-Dcom.sun.aas.jconsole.server.cbport=XXXX</jvm-options>

حيث XXXX هو رقم المنفذ الذي تستخدمه في جدار الحماية جنبا إلى جنب مع تطبيق ملقم تكوين JMX رقم المنفذ (عادة 8686).

اقرأ المزيد في هذا blogpost.لاحظ أن هذه الميزة يتطلب إصدار أحدث من Glassfish.لقد استخدمت بنجاح مع Glassfish 2.1.1.

أليس كذلك GlassFish مسألة 1409?

إذا كان يتم تشغيل التطبيق الخاص بك داخل Glassfish ملقم التطبيق ببساطة تشغيل التالية asadmin الأمر, سوف تحتاج إلى إعادة تشغيل جميع بتشغيل خوادم تغيير المفعول.

./asadmin تمكين-امن-مشرف

هناك إضافية Glassfish تكوينات ملقم لتمكين الأمن ، انظر المزيد في الاتصال عن بعد إلى Glassfish خلال JMX.

تحتاج إلى اتبع الخطوات التالية على JVM الخيارات هذه هي تعليمات تطبيقات جافا بشكل عام.من أجل تطبيق جافا الذي يعمل مع Glassfish ملقم التطبيق ببساطة باستخدام asadm الأمر.التي وفرت لي الكثير من الوقت!

** ملاحظة أخرى ، مع الإعدادات باستخدام JVM الخيارات Glassfish سوف تفشل لبدء مع سبق runtime استثناءات.** أنا باستخدام GF3.1.2 أعلاه ، جافا 7.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top