tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Meyfroidt <Steve.Meyfro...@netdecisions.co.uk>
Subject RE: Servlets and relative paths
Date Fri, 01 Jun 2001 13:40:14 GMT
Set the SystemID for xsl includes: this line is part of the setup for some
SAX-driven XSL processing I've used in servlets:
            StreamSource source = new StreamSource(stream, getSystemID());
// set system id for xsl includes
where getSystemID() returns the URI to use as a base location for xsl
includes. See the xalan javadoc.

Hope that helps.

SteveM


-----Original Message-----
From: Chris McNeilly [mailto:cmcneilly@smartbrief.com]
Sent: Friday, June 01, 2001 2:18 PM
To: tomcat-user@jakarta.apache.org
Subject: RE: Servlets and relative paths


That's eventually what I did.  I now have two top xsl pages, one includes
with fully qualified urls and the other uses the relative includes.  One for
the xsl designer and the other for testing/prod.  It's not ideal, but isn't
too much of a pain.

Chris
-----Original Message-----
From: Cox, Charlie [mailto:ccox@cincom.com]
Sent: Friday, June 01, 2001 8:45 AM
To: 'tomcat-user@jakarta.apache.org'
Subject: RE: Servlets and relative paths


What I had to do was put the xsl files in the root directory for my webapp
where I could make the href the full url
(http://localhost/webapp/sections.xsl) This was the only way I could get it
to work correctly. Obviously this exposes your stylesheet to anyone who
requests that url. I finally gave up on the include since I was only sharing
with 2 stylesheets, but I still use it for my dtd, which has the same
problem when processed by a stylesheet.
I didn't think that I would get it to work as I wanted since Xalan(library
I'm using) doesn't know about tomcat, and I couldn't find anywhere in xalan
to set a default path to look for include files/dtd's. Therefore it always
assumes the 'working dir' for the application when looking for includes. 
The ugly option is that you could make the include path =
"../webapps/MyContext/sections.xsl" assuming your context is under webapps.
Of course this is inconsistant with other paths in your application(i.e.
getResourceAsStream()) and is a pain to maintain if you move your context.
The other ugly option being chucking the includes into the bin directory,
but that defeats the purpose of separating contexts.
Charlie 
-----Original Message----- 
From: Chris McNeilly [mailto:cmcneilly@smartbrief.com] 
Sent: Wednesday, May 30, 2001 2:22 PM 
To: tomcat-user@jakarta.apache.org 
Subject: RE: Servlets and relative paths 


No, my problem is that I can use this method to read the xsl file just 
fine.  It's the includes inside the xsl file that aren't working. 
For example, inside the xsl file (which I read into the servlet using 
your pointer from the earlier email) there is the line 
<xsl:include href='sections.xsl'/> 
and I get an error saying that it cannot find file 
tomcat/bin/sections.xsl.  Which, of course, it cannot, since the file is 
located in Meta-Inf/. 
Chris 
> -----Original Message----- 
> From: Bo Xu [mailto:bo@cybershop.ca] 
> Sent: Wednesday, May 30, 2001 10:45 AM 
> To: tomcat-user@jakarta.apache.org 
> Subject: Re: Servlets and relative paths 
> 
> 
> Chris McNeilly wrote: 
> 
> > Thanks Bo.  This is certainly a step in the right direction. 
> > 
> > I can now include the xml file and xsl file using relative 
> paths.  My 
> > only problem now is that there are xsl includes inside the 
> xsl files and 
> > they are still being loaded incorrectly (using the 
> tomcat/bin directory 
> > as root, not the servlet context).  Any ideas? 
> > 
> > Thanks, 
> > 
> > Chris 
> > 
> > > Chris McNeilly wrote: 
> > > 
> > >  > I've got a servlet and am trying to open files.  The 
> > > problem is that its 
> > >  > defaulting to the tomcat/bin directory whenever I attempt 
> > > to refer to 
> > >  > them.  How can I change this?  Hardcoding the path isn't 
> > > such a good 
> > >  > idea as my dev environment is different from production. 
> > > These are xml 
> > >  > and xsl files and they are located on the webroot. 
> > >  > 
> > >  > Thanks, 
> > >  > 
> > >  > Chris 
> > > 
> > > Hi :-)  from several emails in Servlet-List and this List: 
> > > 
> > > * InputStream is = this.getServletContext(). 
> > > 
> > > getResourceAsStream("/WEB-INF/testApp.properties"); 
> > > 
> > > now testApp.properties is in myapp/WEB-INF/ 
> > > 
> > > 
> > > * 
> > > - InputStream is = 
> > > this.getClass().getResourceAsStream("testApp.properties"); 
> > > - InputStream is = Thread.currentThread().getContextClassLoader(). 
> > > 
> getResourceAsStream("myservlet.conf"); 
> > > 
> > >    now, (normally),  myservlet.conf/testApp.properties is in 
> > > myapp/WEB-INF/classes 
> > > 
> > > 
> > > Bo 
> > > May.29, 2001 
> > > 
> > [...] 
> 
> Hello Chris :-)  I am not sure, do you want to  read a file in 
> TOMCAT_HOME/bin? 
> is the following possible? 
> 
> - put MyUtil.class in TOMCAT_HOME/bin 
> - include TOMCAT_HOME/bin/MyUtil.class into CLASSPATH 
> - put testApp.properties into TOMCAT_HOME/bin 
> - in MyServlet, write the following code: 
>   ... 
>   MyUtil myobject=new MyUtil(); 
>   InputStream is = 
>   myobject.getClass().getResourceAsStream("testApp.properties"); 
>   ... 
> 
> I don't test it,  if it is not right, please correct it, thanks! :-) 
> 
> 
> Bo 
> May.30, 2001 
> 
> 
> 
> 

Mime
View raw message