2010-09-07 23 views
0

我在weblogic控制檯上部署了一個ear。我需要檢查部署耳朵中存在的jar文件的清單文件和ejb-jar.xml的內容。使用JMX讀取ejb manifest中的ejb manifest和ejb-jar.xml裏面的jar裏面的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」的罐子(代表),並訪問其清單文件,ejb-jar.xml

有沒有人有一個想法如何做到這一點?我知道我們可以使用jarinputstream訪問清單文件。但是,我如何獲得該流?

問候 薩米爾

回答

2

您可以使用類似

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

其中jarfile.jar存在於耳。