[ 
https://issues.jboss.org/browse/WELD-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12694533#comment-12694533
 ] 

Alexandre Gattiker commented on WELD-1040:
------------------------------------------

GitHub pull request created at https://github.com/weld/core/pull/203
                
> Support Java Web Start
> ----------------------
>
>                 Key: WELD-1040
>                 URL: https://issues.jboss.org/browse/WELD-1040
>             Project: Weld
>          Issue Type: Bug
>          Components: Java SE Support
>    Affects Versions: 1.1.4.Final, 1.1.5.Final
>            Reporter: Alexandre Gattiker
>         Attachments: weld-webstart-bug.zip
>
>
> ClassLoader.getResources("META-INF/beans.xml") returns remote server URLs in 
> the format "http://...";
> Weld's FileSystemURLHandler tries to open these URLs as files, which leads to:
> java.lang.RuntimeException: Error handling file 
> http:/localhost:8080/weld-webstart-war-0.0.1-SNAPSHOT/webstart/weld-webstart-jar.jar
>       at 
> org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handleArchiveByFile(FileSystemURLHandler.java:80)
>       at 
> org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handle(FileSystemURLHandler.java:58)
>       at 
> org.jboss.weld.environment.se.discovery.url.URLScanner.scan(URLScanner.java:102)
>       at 
> org.jboss.weld.environment.se.discovery.url.WeldSEUrlDeployment.<init>(WeldSEUrlDeployment.java:39)
>       at org.jboss.weld.environment.se.Weld.createDeployment(Weld.java:130)
>       at org.jboss.weld.environment.se.Weld.initialize(Weld.java:80)
>       at com.example.TestApp.main(TestApp.java:12)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at com.sun.javaws.Launcher.executeApplication(Launcher.java:1914)
>       at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1847)
>       at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1609)
>       at com.sun.javaws.Launcher.run(Launcher.java:138)
>       at java.lang.Thread.run(Thread.java:680)
> Caused by: java.util.zip.ZipException: error in opening zip file
>       at java.util.zip.ZipFile.open(Native Method)
>       at java.util.zip.ZipFile.<init>(ZipFile.java:127)
>       at java.util.zip.ZipFile.<init>(ZipFile.java:143)
>       at 
> org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handleArchiveByFile(FileSystemURLHandler.java:71)
>       ... 15 more
> I am attaching a demo project that also contains a proposed fix, using 
> com.sun.jnlp.JNLPClassLoader#getJarFile(URL) to retrieve the location of the 
> locally cached copy of the JAR. As this is an internal class it is accessed 
> by reflection. The getJarFile method only exists in JRE 6, not in JRE 5.
> Add to org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler:
>       if (urlPath.startsWith("http:") || urlPath.startsWith("https:")) {
>               ClassLoader cl;
>               if (Thread.currentThread().getContextClassLoader() != null) {
>                       cl = Thread.currentThread().getContextClassLoader();
>               } else {
>                       cl = getClass().getClassLoader();
>               }
>               Method m = cl.getClass().getMethod("getJarFile", URL.class);
>               JarFile jarFile = (JarFile) m.invoke(cl, new URL(urlPath));
>               urlPath = jarFile.getName();
>       }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to