الحصول على معلومات فئة وقت التشغيل من الويب؟ شيء مثل Javap ولكن في وقت التشغيل على الفصل المحملة في الذاكرة
سؤال
أنا أعمل مع 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 [] غير مدعوم. لكنني لست متأكدًا من ذلك. سيكون الباقي هو نفسه.)
إذا تم نشر هذا في الإنتاج ، فيجب تكوين شكل من أشكال المصادقة.
لا تنتمي إلى StackOverflow