我在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
访问清单文件。但是,我如何获得该流?
问候 萨米尔
答案 0 :(得分:2)
您可以使用类似
的内容InputStream is = this.getClass().getClassLoader().getResourceAsStream("jarfile.jar/META-INF/ejb-jar.xml");
其中存在于jar中的jarfile.jar。