> From: Shapira, Yoav [mailto:[EMAIL PROTECTED]
Yoav, I have *no* idea what this list would do without you... > We discussed > this back as jar as June: see the thread and accompanying > Bugzilla issue > at http://issues.apache.org/bugzilla/show_bug.cgi?id=29631. > We decided > not to allow customization of this for 5.0.x, as too much would be > involved. Saw it - hence my response on this list. > However, before even opening such a discussion, we should consider > alternatives for your use-case. Absolutely! > >- I want to read X.xml from code within the JSP. What are the ways, > >accoring to the JSP and servlet specs, that I can do this? > > Numerous ways, with two good ones coming to mind and two bad ones. > > Good: > URL xUrl = getServletContext().getResource("/path/to/x.xml"); OK. > URL xUrl = getClass().getResource("/path/to/x.xml/on/classpath"); OK. That's an interesting case, may need to hack with the classloader. > Bad: > URL xUrl = new File("/path/to/x.xml").toURI().toURL(); I'm willing to allow this to fail. To be honest, I can't see how it works sensibly anyway... > URL xUrl = getServletContext().getRealPath("/path/to/x.xml"); Heh. I know a few that do this... it'd be nice to allow this, possibly by replacing the implementation of getRealPath(), but I'm also willing to let it fail. > You would then parse from a URL using the JAXP APIs, that's fairly > standard. Or maybe another higher-level tool like JDOM if that's your > cup of tea. Yes. So, by this time, I need to have remapped the resource so that opening a stream on the URL gives the 'right' result. > But note in all these ways the scheme of the URL doesn't > matter, it's up > to the server to resolve them. The two Good ones above would > be jndi:/ URLs. Indeed. Which is why I have this nasty suspicion I need to get hold of the stream handler factory - although potentially it sounds like I could get away with wrapping the jndi: implementation and intercepting getRealPath(). > If the container can't resolve it using getResource, that means your > webapp is not compliant to the Servlet Spec. Well, that's a nice simple statement to work to :-). Thanks! We're willing to force servlets to be compliant - and to hack Catalina if necessary, although we'd prefer not to. > Your resource resolution would be relative to either > your docBase or your classpath, neither of which are affected by where > your JSP is. Cool. Thanks very much for your help - I'll take a look at this and see what I can do. If anyone can think of a funnel in Catalina (or elsewhere) through which all the legitimate requests pass, I'd appreciate knowing about it as I may be able to intercept there. - Peter --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]