[jboss-user] [Beginners Corner] - jboss 5 and ClassLoader problem

johlon do-not-reply at jboss.com
Sun Dec 14 21:22:32 EST 2008


I would like to load jboss published in the EAR file jar all xml, but not to load path, Jboss 4 in the original path:the jar's file path = D: / Java/Jboss/server/default/tmp/deploy/tmp29312liveos.ear- contents / liveos.jar, but in jboss 5 :the jar's file path = D: / Java / Jboss / server / default / deploy / liveos.ear / liveos.jar, why not the jar's file path = D: \ Java \ Jboss \ server \ default \ tmp \ vfs-nested.tmp/02804a5d_liveos.jar, such JarFile jarFile = new JarFile (filename); can not find jar

private void loadConfig() {
        try {
            String osName = System.getProperty("os.name");
            ClassLoader loader = Thread.currentThread().getContextClassLoader();
            String url = loader.getResource(BillConfigCache.class.getName().replace(".", "/") + ".class").toString();
            logger.debug("Current class's filepath : " + url);
            String filename;
            if (osName != null && osName.indexOf("Windows") != -1) {
                logger.debug("Current class begin : " + url.substring(url.indexOf("/")) +"/"+url.substring(url.indexOf(".jar/")+4));
                filename = url.substring(url.indexOf("/") + 1, url.indexOf(".jar/") + 4);
                //filename = url.substring(url.indexOf("/") + 1, url.indexOf("!"));//Jboss 4
            } else {
                filename = url.substring(url.indexOf("/"), url.indexOf(".jar/") + 4);
                //filename = url.substring(url.indexOf("/"), url.indexOf("!"));//Jboss 4
            }
            filename = filename.replace("%20", " ");
            logger.debug("jar's file path = " + filename);

            JarFile jarFile = new JarFile(filename);
            Enumeration entries = jarFile.entries();
            while (entries.hasMoreElements()) {
                JarEntry jarEntry = entries.nextElement();
                String configFile = jarEntry.getName();
                if (jarEntry.getName().toLowerCase().endsWith("xml")) {
                    logger.debug("Bill Config File : " + configFile);
                    InputStream inputStream = loader.getResourceAsStream(configFile);
                    List templateList = createBillTemplate(inputStream);
                    cacheBillTemplate(templateList);
                }
            }


        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            throw new PAOSBusinessException(e.getMessage(), e);
        }
    }

Any suggestions?thanks!

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196435#4196435

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196435



More information about the jboss-user mailing list