الحصول على معلومات فئة وقت التشغيل من الويب؟ شيء مثل Javap ولكن في وقت التشغيل على الفصل المحملة في الذاكرة

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

  •  22-09-2019
  •  | 
  •  

سؤال

أنا أعمل مع WebSphere وقضايا التحميل المعقدة. أريد أن أكون قادرًا على تنزيل أو طباعة المعلومات التي عادة ما يتم طباعتها بواسطة Javap (الطرق ، إلخ).

قد أحتاج أيضًا إلى الحصول على بيانات الفئة الثنائية الخام ، لأداء فرق ثنائية.

كيف يمكنك أن تفعل هذا؟

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

المحلول

يمكنك كتابة Servlet أو JMX Mbean يعرض الفصل لعميلك.

سيرفليت:

String resourceParameter = ...;
OutputStream out = ...:
InputStream input = Thread.currentThread().getContextClassLoader()
   .getResourceAsStream(resourceParameter)
write(input, out);

عميل:

GET http://host/DiagnosticServlet?resource=your/ClassName.class

يجب أن تكون معلمة الموارد الخاصة بك ملف الفئة your.classname -> الخاص بك/classname.class. يمكنك بعد ذلك حفظ الملف واستخدام Javap.

(أعتقد أن MBean يجب أن يشفر ملف الفصل الخاص بك إلى سلسلة (على سبيل المثال الأساس 64) لأن Byte [] غير مدعوم. لكنني لست متأكدًا من ذلك. سيكون الباقي هو نفسه.)

إذا تم نشر هذا في الإنتاج ، فيجب تكوين شكل من أشكال المصادقة.

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