使用JMX在ejb jar内部读取ejb manifest jar和ejb-jar.xml

时间:2010-09-07 12:48:41

标签: java weblogic ejb jmx

我在weblogic控制台上部署了一个耳朵。我需要检查已部署的ear中存在的jar的清单文件和ejb-jar.xml的内容。

目前我正在使用以下代码访问部署内部的jar:

Hashtable env = new Hashtable(5);
env.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL,
url);
env.put(Context.SECURITY_PRINCIPAL, user);
env.put(Context.SECURITY_CREDENTIALS, password);
Context ctx = new InitialContext(env);
mBeanHome = (MBeanHome)ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);

String type = "EJBComponentRuntime"; 
Set beans = mBeanHome.getMBeansByType(type); 



try{
for(Iterator it=beans.iterator();it.hasNext();)
{ 
EJBComponentRuntimeMBean rt = (EJBComponentRuntimeMBean)it.next(); 

if(rt.getParent().getName().equals("xxx")){
System.out.println(rt.getName());
l.add(rt.getName());

此处xxx是耳朵。现在我需要通过变量“rt”进入jar(表示)并访问其清单文件ejb-jar.xml

有谁知道如何做到这一点?我知道我们可以使用jarinputstream访问清单文件。但是,我如何获得该流?

问候 萨米尔

1 个答案:

答案 0 :(得分:2)

您可以使用类似

的内容
InputStream is = this.getClass().getClassLoader().getResourceAsStream("jarfile.jar/META-INF/ejb-jar.xml");

其中存在于jar中的jarfile.jar。