Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [gemini-dev] Broken WAB resource handling in Tomcat 8



2016-12-05 9:40 GMT+02:00 Violeta Georgieva <milesg78@xxxxxxxxx>:
>
>
>
> 2016-12-05 9:38 GMT+02:00 <detelinyordanov@xxxxxxxxx>:
> >
> > Hi Violeta,
> >    Thanks for the quick turnaround, I tested this fix and it seems to work for non-jar resources, but when trying to load a jar under WEB-INF/lib, it still returns null for the input stream. It looks like internally the jar resource url is interpreted as a directory due to the "!/" suffix.
>
> Ok let me check.

Can you specify how you try to access the jar?


>
> Thanks,
> Violeta
>
> >
> > Regards,
> >    Detelin
> >
> > 2016-12-02 19:10 GMT+02:00 Violeta Georgieva <milesg78@xxxxxxxxx>:
> >>
> >> Hi Detelin,
> >>
> >> Indeed there was a problem in Gemini Web.
> >> Here [1] you can find a fix for this issue.
> >>
> >> Best Regards,
> >> Violeta
> >>
> >> [1] http://git.eclipse.org/c/gemini.web/org.eclipse.gemini.web.gemini-web-container.git/commit/?id=2016847082b46fbfb4fe46f3a67433f538943bc2
> >>
> >>
> >> 2016-12-02 12:20 GMT+02:00 <detelinyordanov@xxxxxxxxx>:
> >> >
> >> > Hi again,
> >> >   Actually, the code that seem to fail is a combination of Servlet.Context.getResourcePaths() and ServletContext.getResourceAsStream(). I'm attaching a modified Gemini Web wab sample with slf4j api jar added in WEB-INF/lib and the following code added in SimpleServlet:
> >> >
> >> > ServletContext servletContext = ...
> >> > Set<String> resourcePaths = servletContext.getResourcePaths("/WEB-INF/lib");
> >> > String resourcePath = resourcePaths.iterator().next();
> >> > InputStream inputStream = servletContext.getResourceAsStream(resourcePath);
> >> > System.out.println(String.format("InputStream for resource '%s' is: %s", resourcePath, inputStream));
> >> >
> >> > With Gemini Web 2.2.7 this prints:
> >> >
> >> > InputStream for resource '/WEB-INF/lib/org.slf4j.api.jar' is: org.eclipse.osgi.storage.bundlefile.ZipBundleEntry$ZipBundleEntryInputStream@405822b1
> >> >
> >> > With Gemini Web 3.0 RC2 the result is:
> >> >
> >> > InputStream for resource '/WEB-INF/lib/org.slf4j.api.jar/' is: null
> >> >
> >> > So it seems there is also a difference in the getResourcePaths method - with Tomcat 8 this returns a resource path with a trailing slash.So
> >> >
> >> > Regards,
> >> >    Detelin
> >> >
> >> >
> >> >
> >> > 2016-12-02 9:59 GMT+02:00 <detelinyordanov@xxxxxxxxx>:
> >> >>
> >> >> Hi,
> >> >>   We recently tried Gemini Web 3.0 RC2 with Tomcat 8.5.5 and encountered a resource handling problem for web application bundles. We have tested Web application bundles with some jars in WEB-ING/lib which provide rest services and noticed that Jersey was not able to load them. At the end, it turned out that ServletContext.getResourceAsStream("WEB-INF/lib/foo.jar") always returns null, even though ServletContext.getResourcePaths() successfully lists the resources.
> >> >> This can be reproduced with Equinox 3.10 (Luna), Gemini Web 3.0 RC2 and a simple wab containing a jar in WEB-INF/lib.
> >> >> Could this be a problem in Gemini Web and/or Tomcat 8's new resource handling? I checked Gemini Web jira but did not find anything similar, will look further but thought I might just drop an email to see if anyone is aware of this issue.
> >> >>
> >> >> Regards,
> >> >>    Detelin
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > gemini-dev mailing list
> >> > gemini-dev@xxxxxxxxxxx
> >> > To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> >> > https://dev.eclipse.org/mailman/listinfo/gemini-dev
> >>
> >> _______________________________________________
> >> gemini-dev mailing list
> >> gemini-dev@xxxxxxxxxxx
> >> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> >> https://dev.eclipse.org/mailman/listinfo/gemini-dev
> >
> >
> >
> > _______________________________________________
> > gemini-dev mailing list
> > gemini-dev@xxxxxxxxxxx
> > To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> > https://dev.eclipse.org/mailman/listinfo/gemini-dev

Back to the top