Modules not getting loaded from classpath in JBoss 5.1
------------------------------------------------------

                 Key: AXIS2-4900
                 URL: https://issues.apache.org/jira/browse/AXIS2-4900
             Project: Axis2
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.5.2
         Environment: axis2 verion 1.5.2 in JBoss 5.1 with jdk 1.6
            Reporter: Yiming Du


Modules not getting loaded from classpath in JBoss 5.1

I tried to deploy the axis2 verion 1.5.2 in JBoss 5.1 with jdk 1.6 and wanted 
to load the modules from the classpath., which did not work. 

AXIS2-4528 addresses the similar issue, but on WebSphere with protocal "wsjar". 
 

In JBoss 5.1:
- the jar URL's protocal is "vfszip" instead of "jar" or "wsjar"
- the jar URL's path will be like this
/C:/jboss-eap-5.1/jboss-as/server/default/deploy/ApproveItWebServer_JBoss.ear/library/axis2/rampart-1.5.jar/META-INF/module.xml

Thus, in the class org.apache.axis2.deployment.RepositoryListener, method name 
"loadClassPathModules()", the variable "idx" is always evaluated to be -1, and 
so addFileToDeploy method will never be called.


        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        try {
            Enumeration moduleURLs = loader.getResources("META-INF/module.xml");
            while (moduleURLs.hasMoreElements()) {
                try {
                    URL url = (URL)moduleURLs.nextElement();
                    URI moduleURI;
                    if (url.getProtocol().equals("file")) {
                        String urlString = url.toString();
                        moduleURI = new URI(urlString.substring(0,
                                urlString.lastIndexOf("/META-INF/module.xml")));
                    } else {
                        // Check if the URL refers to an archive (such as
                        // jar:file:/dir/some.jar!/META-INF/module.xml) and 
extract the
                        // URL of the archive. In general the protocol will be 
"jar", but
                        // some containers may use other protocols, e.g. 
WebSphere uses
                        // "wsjar" (AXIS2-4258).
                        String path = url.getPath();
                        int idx = path.lastIndexOf("!/");
                        if (idx != -1 && 
path.substring(idx+2).equals("META-INF/module.xml")) {
                            moduleURI = new URI(path.substring(0, idx));
                            if (!moduleURI.getScheme().equals("file")) {
                                continue;
                            }
                        } else {
                                                        // it always goes here.
                            continue;
                        }
                    }
    
                    log.debug("Deploying module from classpath at '" + 
moduleURI + "'");
                    File f = new File(moduleURI);
                    addFileToDeploy(f, deployer, WSInfo.TYPE_MODULE);

                } catch (URISyntaxException e) {
                    log.info(e);
                }
            }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to