RE: Problem with the xsl:import

2006-04-25 Thread BLAND, Geoff, GBM
Marc,

Thanks for the reply.

We can put in an import of the form

xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl; /

and that works fine (for a single web server).

But we have multiple web servers on the box (using different ports and
different install paths) and they may be different versions (development,
UAT, production) having different versions of routesummarycontent.xsl. If we
use the import above all servers end up selecting the XSL for just one of
the versions. 

We don't want to have a different import for each version either as that
will need modifying as we migrate updated versions between servers.

What we need is a relative import, for example, 

xsl:import href=/xsl/routesummarycontent.xsl /  !-- doesn't work --

But I'm thinking this is impossible.

Thanks
Geoff


-Original Message-
From: Marc Farrow [mailto:[EMAIL PROTECTED] 
Sent: 21 April 2006 14:41
To: Tomcat Users List
Subject: Re: Problem with the xsl:import


You need to put the XML import file (in your case routesummarycontent.xsl)
somewhere that whomever is providing the resource (Apache or Tomcat) can see
it.  Let me try to elaborate.

We use an AJP connector with Tomcat and receives requests from Apache on
port 8009.  We forward all Servlet stuff to the Tomcat, but we let Apache
handle everything else.  Even images, js files, etc that are contained
within a web application (context).  In order to accomplish this, we have an
alias set up for each web application in Apache.  Thus, when we go to
http://localhost/mywebapp/js/myjsfile.js we know that Apache is pulling up
that page.  However, if we have a js file in a JSP page that is referenced
such as

script src=/mywebapp/js/myjsfile.js language=Javascript/script

we know that Tomcat is processing the JSP page, but Apache is processing the
handling of sending the JS file to the client.  As this is another http
request inside the page that was request.

So, the short of it is that you need to place your XSL somewhere that can be
accessed via HTTP.  So you need to either move the XSL file to a place where
an alias is defined for Apache (even root) or create an alias for your
Tomcat context and then point your html tag to:

xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl; /

HTH



On 4/21/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:

 Using Apache Tomcat 5.0.28 I'm having a problem with the xsl:import 
 command.

 I have several Tomcat running on the same server (they could be 
 different releases of code so can't share resources).

 An XSLT script is called via a JSP to convert XML to HTML (xsl:apply 
 nameXml=routesummary xsl=/xsl/routesummaryheader.xsl /).

 This routesummaryheader.xsl script then needs to call another XSLT 
 script routesummarycontent.xsl and it does this via an import, for 
 example,

 xsl:import 
 href=http://localhost:8080/aaem/xsl/routesummarycontent.xsl;
 /

 Now this works fine.

 But I run many Tomcat servers on this box and so a specific URI is no 
 good. So I want to replace that import with a relative URI

 xsl:import href=routesummarycontent.xsl /

 This does not work, I get Had IO Exception with stylesheet file: 
 routesummarycontent.xsl.

 Note routesummaryheader.xsl and routesummarycontent.xsl are in the 
 same directory.

 I've tried all kinds of relative paths in the import nothing seems to 
 work.

 The JSP file is under webapps\app-dir\jsp. The XSLT files are under 
 webapps\app-dir\xsl.


 How do I fix this?


 **
 *
 The Royal Bank of Scotland plc. Registered in Scotland No 90312.
 Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB.
 Authorized and regulated by the Financial Services Authority

 This e-mail message is confidential and for use by the addressee only. 
 If the message is received by anyone other than the addressee, please 
 return the message to the sender by replying to it and then delete the 
 message from your computer. Internet e-mails are not necessarily 
 secure. The Royal Bank of Scotland plc does not accept responsibility 
 for changes made to this message after it was sent.

 Whilst all reasonable care has been taken to avoid the transmission of 
 viruses, it is the responsibility of the recipient to ensure that the 
 onward transmission, opening or use of this message and any 
 attachments will not adversely affect its systems or data. No 
 responsibility is accepted by The Royal Bank of Scotland plc in this 
 regard and the recipient should carry out such virus and other checks 
 as it considers appropriate. Visit our websites at:
 http://www.rbos.com
 http://www.rbsmarkets.com

 **
 *

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




--
Marc Farrow

Re: Problem with the xsl:import

2006-04-25 Thread Marc Farrow
It is not impossible.  Try

xsl:import href=/aaem/xsl/routesummarycontent.xsl /

You just have to make sure that the XSL content is either

1)  Processed by Tomcat (by your connector properties)
a)  in the MOD_JK* worlds, this is making sure the URL pattern matching
is set to forward
 the appropriate requests to Tomcat.  In other connectors, you will
have to do basically
 the same thing by whatever means is needed with that connector.
2)  Apache can see the aaem webapp via an alias.

We use the second method.  You let Apache handle all requests that do not
require a servlet container and forward everything else (JSPs and servlets)
to Tomcat.  This works even if we have static content within our Tomcat
webapp.

hth


On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:

 Marc,

 Thanks for the reply.

 We can put in an import of the form

 xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl; /

 and that works fine (for a single web server).

 But we have multiple web servers on the box (using different ports and
 different install paths) and they may be different versions (development,
 UAT, production) having different versions of routesummarycontent.xsl. If
 we
 use the import above all servers end up selecting the XSL for just one of
 the versions.

 We don't want to have a different import for each version either as that
 will need modifying as we migrate updated versions between servers.

 What we need is a relative import, for example,

 xsl:import href=/xsl/routesummarycontent.xsl /  !-- doesn't work --

 But I'm thinking this is impossible.

 Thanks
 Geoff


 -Original Message-
 From: Marc Farrow [mailto:[EMAIL PROTECTED]
 Sent: 21 April 2006 14:41
 To: Tomcat Users List
 Subject: Re: Problem with the xsl:import


 You need to put the XML import file (in your case routesummarycontent.xsl)
 somewhere that whomever is providing the resource (Apache or Tomcat) can
 see
 it.  Let me try to elaborate.

 We use an AJP connector with Tomcat and receives requests from Apache on
 port 8009.  We forward all Servlet stuff to the Tomcat, but we let
 Apache
 handle everything else.  Even images, js files, etc that are contained
 within a web application (context).  In order to accomplish this, we have
 an
 alias set up for each web application in Apache.  Thus, when we go to
 http://localhost/mywebapp/js/myjsfile.js we know that Apache is pulling up
 that page.  However, if we have a js file in a JSP page that is referenced
 such as

 script src=/mywebapp/js/myjsfile.js language=Javascript/script

 we know that Tomcat is processing the JSP page, but Apache is processing
 the
 handling of sending the JS file to the client.  As this is another http
 request inside the page that was request.

 So, the short of it is that you need to place your XSL somewhere that can
 be
 accessed via HTTP.  So you need to either move the XSL file to a place
 where
 an alias is defined for Apache (even root) or create an alias for your
 Tomcat context and then point your html tag to:

 xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl; /

 HTH



 On 4/21/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:
 
  Using Apache Tomcat 5.0.28 I'm having a problem with the xsl:import
  command.
 
  I have several Tomcat running on the same server (they could be
  different releases of code so can't share resources).
 
  An XSLT script is called via a JSP to convert XML to HTML (xsl:apply
  nameXml=routesummary xsl=/xsl/routesummaryheader.xsl /).
 
  This routesummaryheader.xsl script then needs to call another XSLT
  script routesummarycontent.xsl and it does this via an import, for
  example,
 
  xsl:import
  href=http://localhost:8080/aaem/xsl/routesummarycontent.xsl;
  /
 
  Now this works fine.
 
  But I run many Tomcat servers on this box and so a specific URI is no
  good. So I want to replace that import with a relative URI
 
  xsl:import href=routesummarycontent.xsl /
 
  This does not work, I get Had IO Exception with stylesheet file:
  routesummarycontent.xsl.
 
  Note routesummaryheader.xsl and routesummarycontent.xsl are in the
  same directory.
 
  I've tried all kinds of relative paths in the import nothing seems to
  work.
 
  The JSP file is under webapps\app-dir\jsp. The XSLT files are under
  webapps\app-dir\xsl.
 
 
  How do I fix this?
 
 
  **
  *
  The Royal Bank of Scotland plc. Registered in Scotland No 90312.
  Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB.
  Authorized and regulated by the Financial Services Authority
 
  This e-mail message is confidential and for use by the addressee only.
  If the message is received by anyone other than the addressee, please
  return the message to the sender by replying to it and then delete the
  message from your computer. Internet e-mails are not necessarily
  secure. The Royal Bank of Scotland plc does not accept

RE: Problem with the xsl:import

2006-04-25 Thread BLAND, Geoff, GBM
Marc,

Again thanks for the reply, we've kind of done what you say should work - it
appears not to work.

We have put in 

xsl:import href=/aaem/xsl/routesummarycontent.xsl /

And also (I think this is more correct as we're already at the aaem level)

xsl:import href=/xsl/routesummarycontent.xsl /

Neither work.

I'm pretty sure that alias is set correctly as if I put
http://myserver:thisport/aaem/xsl/routesummarycontent.xsl into a web browser
the XSLT script is found.

I'm not sure quite what you mean by make sure XSL content is Processed by
Tomcat. I assume this is happening as if we put in the full address the
XSLT is processed with no problem.

Thanks
Geoff Bland


-Original Message-
From: Marc Farrow [mailto:[EMAIL PROTECTED] 
Sent: 25 April 2006 12:29
To: Tomcat Users List
Subject: Re: Problem with the xsl:import


It is not impossible.  Try

xsl:import href=/aaem/xsl/routesummarycontent.xsl /

You just have to make sure that the XSL content is either

1)  Processed by Tomcat (by your connector properties)
a)  in the MOD_JK* worlds, this is making sure the URL pattern matching
is set to forward
 the appropriate requests to Tomcat.  In other connectors, you will
have to do basically
 the same thing by whatever means is needed with that connector.
2)  Apache can see the aaem webapp via an alias.

We use the second method.  You let Apache handle all requests that do not
require a servlet container and forward everything else (JSPs and servlets)
to Tomcat.  This works even if we have static content within our Tomcat
webapp.

hth


On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:

 Marc,

 Thanks for the reply.

 We can put in an import of the form

 xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl; 
 /

 and that works fine (for a single web server).

 But we have multiple web servers on the box (using different ports and 
 different install paths) and they may be different versions 
 (development, UAT, production) having different versions of 
 routesummarycontent.xsl. If we use the import above all servers end up 
 selecting the XSL for just one of the versions.

 We don't want to have a different import for each version either as 
 that will need modifying as we migrate updated versions between 
 servers.

 What we need is a relative import, for example,

 xsl:import href=/xsl/routesummarycontent.xsl /  !-- doesn't work 
 --

 But I'm thinking this is impossible.

 Thanks
 Geoff


 -Original Message-
 From: Marc Farrow [mailto:[EMAIL PROTECTED]
 Sent: 21 April 2006 14:41
 To: Tomcat Users List
 Subject: Re: Problem with the xsl:import


 You need to put the XML import file (in your case 
 routesummarycontent.xsl) somewhere that whomever is providing the 
 resource (Apache or Tomcat) can see it.  Let me try to elaborate.

 We use an AJP connector with Tomcat and receives requests from Apache 
 on port 8009.  We forward all Servlet stuff to the Tomcat, but we 
 let Apache handle everything else.  Even images, js files, etc that 
 are contained within a web application (context).  In order to 
 accomplish this, we have an
 alias set up for each web application in Apache.  Thus, when we go to
 http://localhost/mywebapp/js/myjsfile.js we know that Apache is pulling up
 that page.  However, if we have a js file in a JSP page that is referenced
 such as

 script src=/mywebapp/js/myjsfile.js language=Javascript/script

 we know that Tomcat is processing the JSP page, but Apache is 
 processing the handling of sending the JS file to the client.  As this 
 is another http request inside the page that was request.

 So, the short of it is that you need to place your XSL somewhere that 
 can be accessed via HTTP.  So you need to either move the XSL file to 
 a place where
 an alias is defined for Apache (even root) or create an alias for your
 Tomcat context and then point your html tag to:

 xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl; 
 /

 HTH



 On 4/21/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:
 
  Using Apache Tomcat 5.0.28 I'm having a problem with the xsl:import 
  command.
 
  I have several Tomcat running on the same server (they could be 
  different releases of code so can't share resources).
 
  An XSLT script is called via a JSP to convert XML to HTML 
  (xsl:apply nameXml=routesummary xsl=/xsl/routesummaryheader.xsl 
  /).
 
  This routesummaryheader.xsl script then needs to call another XSLT 
  script routesummarycontent.xsl and it does this via an import, for 
  example,
 
  xsl:import 
  href=http://localhost:8080/aaem/xsl/routesummarycontent.xsl;
  /
 
  Now this works fine.
 
  But I run many Tomcat servers on this box and so a specific URI is 
  no good. So I want to replace that import with a relative URI
 
  xsl:import href=routesummarycontent.xsl /
 
  This does not work, I get Had IO Exception with stylesheet file: 
  routesummarycontent.xsl.
 
  Note routesummaryheader.xsl and routesummarycontent.xsl

Re: Problem with the xsl:import

2006-04-25 Thread Marc Farrow
This has to do with how HTTP requests are processed on your server.  You
control (by url pattern matching or some other technique) which service
(Tomcat or Apache) gets to handle the request.

Help me out a bit here.  What language the tag XSL belong to?  Is it a
JSP tag or an HTML tag or what?



On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:

 Marc,

 Again thanks for the reply, we've kind of done what you say should work -
 it
 appears not to work.

 We have put in

 xsl:import href=/aaem/xsl/routesummarycontent.xsl /

 And also (I think this is more correct as we're already at the aaem
 level)

 xsl:import href=/xsl/routesummarycontent.xsl /

 Neither work.

 I'm pretty sure that alias is set correctly as if I put
 http://myserver:thisport/aaem/xsl/routesummarycontent.xsl into a web
 browser
 the XSLT script is found.

 I'm not sure quite what you mean by make sure XSL content is Processed by
 Tomcat. I assume this is happening as if we put in the full address the
 XSLT is processed with no problem.

 Thanks
 Geoff Bland


 -Original Message-
 From: Marc Farrow [mailto:[EMAIL PROTECTED]
 Sent: 25 April 2006 12:29
 To: Tomcat Users List
 Subject: Re: Problem with the xsl:import


 It is not impossible.  Try

 xsl:import href=/aaem/xsl/routesummarycontent.xsl /

 You just have to make sure that the XSL content is either

 1)  Processed by Tomcat (by your connector properties)
a)  in the MOD_JK* worlds, this is making sure the URL pattern matching
 is set to forward
 the appropriate requests to Tomcat.  In other connectors, you will
 have to do basically
 the same thing by whatever means is needed with that connector.
 2)  Apache can see the aaem webapp via an alias.

 We use the second method.  You let Apache handle all requests that do not
 require a servlet container and forward everything else (JSPs and
 servlets)
 to Tomcat.  This works even if we have static content within our Tomcat
 webapp.

 hth


 On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:
 
  Marc,
 
  Thanks for the reply.
 
  We can put in an import of the form
 
  xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl;
  /
 
  and that works fine (for a single web server).
 
  But we have multiple web servers on the box (using different ports and
  different install paths) and they may be different versions
  (development, UAT, production) having different versions of
  routesummarycontent.xsl. If we use the import above all servers end up
  selecting the XSL for just one of the versions.
 
  We don't want to have a different import for each version either as
  that will need modifying as we migrate updated versions between
  servers.
 
  What we need is a relative import, for example,
 
  xsl:import href=/xsl/routesummarycontent.xsl /  !-- doesn't work
  --
 
  But I'm thinking this is impossible.
 
  Thanks
  Geoff
 
 
  -Original Message-
  From: Marc Farrow [mailto:[EMAIL PROTECTED]
  Sent: 21 April 2006 14:41
  To: Tomcat Users List
  Subject: Re: Problem with the xsl:import
 
 
  You need to put the XML import file (in your case
  routesummarycontent.xsl) somewhere that whomever is providing the
  resource (Apache or Tomcat) can see it.  Let me try to elaborate.
 
  We use an AJP connector with Tomcat and receives requests from Apache
  on port 8009.  We forward all Servlet stuff to the Tomcat, but we
  let Apache handle everything else.  Even images, js files, etc that
  are contained within a web application (context).  In order to
  accomplish this, we have an
  alias set up for each web application in Apache.  Thus, when we go to
  http://localhost/mywebapp/js/myjsfile.js we know that Apache is pulling
 up
  that page.  However, if we have a js file in a JSP page that is
 referenced
  such as
 
  script src=/mywebapp/js/myjsfile.js language=Javascript/script
 
  we know that Tomcat is processing the JSP page, but Apache is
  processing the handling of sending the JS file to the client.  As this
  is another http request inside the page that was request.
 
  So, the short of it is that you need to place your XSL somewhere that
  can be accessed via HTTP.  So you need to either move the XSL file to
  a place where
  an alias is defined for Apache (even root) or create an alias for your
  Tomcat context and then point your html tag to:
 
  xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl;
  /
 
  HTH
 
 
 
  On 4/21/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:
  
   Using Apache Tomcat 5.0.28 I'm having a problem with the xsl:import
   command.
  
   I have several Tomcat running on the same server (they could be
   different releases of code so can't share resources).
  
   An XSLT script is called via a JSP to convert XML to HTML
   (xsl:apply nameXml=routesummary xsl=/xsl/routesummaryheader.xsl
   /).
  
   This routesummaryheader.xsl script then needs to call another XSLT
   script routesummarycontent.xsl and it does this via an import

Re: Problem with the xsl:import

2006-04-25 Thread Tim Funk
Here's the problem. xsl:import is purely an XSL thing. So it doesn't 
necessarily do anything similar to how the servlet spec does things.


So when you have xsl:import href=cowbell.xsl / - cowbell is retreived in 
a relative style with respect to its context. (which could be file, or http).


Your webapp lives in a context. But xsl knows nothing about context, or 
context as defined by the servlet spec. So asking for 
http://localhost/aaem/xsl/routesummarycontent.xsl is the same as a webbrowser 
asking for it. On a multi-hosted machine - yup - this will bring you 
interesting results.


So what you probably need is your own javax.xml.transform.URIResolver. You 
probably need to write your own implementation of it and have tomcat use it. 
(A topic for which I have done neither)


-Tim

BLAND, Geoff, GBM wrote:

Marc,

Thanks for the reply.

We can put in an import of the form

xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl; /

and that works fine (for a single web server).

But we have multiple web servers on the box (using different ports and
different install paths) and they may be different versions (development,
UAT, production) having different versions of routesummarycontent.xsl. If we
use the import above all servers end up selecting the XSL for just one of
the versions. 


We don't want to have a different import for each version either as that
will need modifying as we migrate updated versions between servers.

What we need is a relative import, for example, 


xsl:import href=/xsl/routesummarycontent.xsl /  !-- doesn't work --



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Problem with the xsl:import

2006-04-25 Thread BLAND, Geoff, GBM
Marc,

The xsl:import href=... / statement to include routesummarycontent.xsl
is in another XSLT script (routesummaryheader.xsl) which is loaded correctly
from a JSP (routesummary.jsp) using the command xsl:apply
nameXml=routesummary xsl=/xsl/routesummaryheader.xsl /.

To recap; routesummary.jsp calls routesummaryheader.xsl which imports
routesummarycontent.xsl.

This has to do with how HTTP requests are processed on your server.
We _think_ that the XSLT processor used by Tomcat can't use relative paths
as it doesn't know what context it resides in (even if Tomcat does).

Thanks
Geoff


-Original Message-
From: Marc Farrow [mailto:[EMAIL PROTECTED] 
Sent: 25 April 2006 13:03
To: Tomcat Users List
Subject: Re: Problem with the xsl:import


This has to do with how HTTP requests are processed on your server.  You
control (by url pattern matching or some other technique) which service
(Tomcat or Apache) gets to handle the request.

Help me out a bit here.  What language the tag XSL belong to?  Is it a
JSP tag or an HTML tag or what?



On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:

 Marc,

 Again thanks for the reply, we've kind of done what you say should 
 work - it appears not to work.

 We have put in

 xsl:import href=/aaem/xsl/routesummarycontent.xsl /

 And also (I think this is more correct as we're already at the aaem
 level)

 xsl:import href=/xsl/routesummarycontent.xsl /

 Neither work.

 I'm pretty sure that alias is set correctly as if I put 
 http://myserver:thisport/aaem/xsl/routesummarycontent.xsl into a web 
 browser the XSLT script is found.

 I'm not sure quite what you mean by make sure XSL content is 
 Processed by Tomcat. I assume this is happening as if we put in the 
 full address the XSLT is processed with no problem.

 Thanks
 Geoff Bland


 -Original Message-
 From: Marc Farrow [mailto:[EMAIL PROTECTED]
 Sent: 25 April 2006 12:29
 To: Tomcat Users List
 Subject: Re: Problem with the xsl:import


 It is not impossible.  Try

 xsl:import href=/aaem/xsl/routesummarycontent.xsl /

 You just have to make sure that the XSL content is either

 1)  Processed by Tomcat (by your connector properties)
a)  in the MOD_JK* worlds, this is making sure the URL pattern 
 matching is set to forward
 the appropriate requests to Tomcat.  In other connectors, you 
 will have to do basically
 the same thing by whatever means is needed with that 
 connector.
 2)  Apache can see the aaem webapp via an alias.

 We use the second method.  You let Apache handle all requests that do 
 not require a servlet container and forward everything else (JSPs and
 servlets)
 to Tomcat.  This works even if we have static content within our 
 Tomcat webapp.

 hth


 On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:
 
  Marc,
 
  Thanks for the reply.
 
  We can put in an import of the form
 
  xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl;
  /
 
  and that works fine (for a single web server).
 
  But we have multiple web servers on the box (using different ports 
  and different install paths) and they may be different versions 
  (development, UAT, production) having different versions of 
  routesummarycontent.xsl. If we use the import above all servers end 
  up selecting the XSL for just one of the versions.
 
  We don't want to have a different import for each version either as 
  that will need modifying as we migrate updated versions between 
  servers.
 
  What we need is a relative import, for example,
 
  xsl:import href=/xsl/routesummarycontent.xsl /  !-- doesn't 
  work
  --
 
  But I'm thinking this is impossible.
 
  Thanks
  Geoff
 
 
  -Original Message-
  From: Marc Farrow [mailto:[EMAIL PROTECTED]
  Sent: 21 April 2006 14:41
  To: Tomcat Users List
  Subject: Re: Problem with the xsl:import
 
 
  You need to put the XML import file (in your case
  routesummarycontent.xsl) somewhere that whomever is providing the 
  resource (Apache or Tomcat) can see it.  Let me try to elaborate.
 
  We use an AJP connector with Tomcat and receives requests from 
  Apache on port 8009.  We forward all Servlet stuff to the Tomcat, 
  but we let Apache handle everything else.  Even images, js files, 
  etc that are contained within a web application (context).  In order 
  to accomplish this, we have an alias set up for each web application 
  in Apache.  Thus, when we go to 
  http://localhost/mywebapp/js/myjsfile.js we know that Apache is 
  pulling
 up
  that page.  However, if we have a js file in a JSP page that is
 referenced
  such as
 
  script src=/mywebapp/js/myjsfile.js 
  language=Javascript/script
 
  we know that Tomcat is processing the JSP page, but Apache is 
  processing the handling of sending the JS file to the client.  As 
  this is another http request inside the page that was request.
 
  So, the short of it is that you need to place your XSL somewhere 
  that can be accessed via HTTP.  So you need to either move the XSL

RE: Problem with the xsl:import

2006-04-25 Thread BLAND, Geoff, GBM
Tim,

I think you're right. That's pretty much what we had thought.
Also we had thought of writing our own resolver, we've done this to solve
other (non-web) issues, but we were hoping tat there might be a better way
of doing this.

Thanks for your help.
Geoff


-Original Message-
From: Tim Funk [mailto:[EMAIL PROTECTED] 
Sent: 25 April 2006 13:17
To: Tomcat Users List
Subject: Re: Problem with the xsl:import


Here's the problem. xsl:import is purely an XSL thing. So it doesn't 
necessarily do anything similar to how the servlet spec does things.

So when you have xsl:import href=cowbell.xsl / - cowbell is retreived in

a relative style with respect to its context. (which could be file, or
http).

Your webapp lives in a context. But xsl knows nothing about context, or 
context as defined by the servlet spec. So asking for 
http://localhost/aaem/xsl/routesummarycontent.xsl is the same as a
webbrowser 
asking for it. On a multi-hosted machine - yup - this will bring you 
interesting results.

So what you probably need is your own javax.xml.transform.URIResolver. You 
probably need to write your own implementation of it and have tomcat use it.

(A topic for which I have done neither)

-Tim

***
The Royal Bank of Scotland plc. Registered in Scotland No 90312. Registered 
Office: 36 St Andrew Square, Edinburgh EH2 2YB. 
Authorized and regulated by the Financial Services Authority 
 
This e-mail message is confidential and for use by the 
addressee only. If the message is received by anyone other 
than the addressee, please return the message to the sender 
by replying to it and then delete the message from your 
computer. Internet e-mails are not necessarily secure. The 
Royal Bank of Scotland plc does not accept responsibility for 
changes made to this message after it was sent. 

Whilst all reasonable care has been taken to avoid the 
transmission of viruses, it is the responsibility of the recipient to 
ensure that the onward transmission, opening or use of this 
message and any attachments will not adversely affect its 
systems or data. No responsibility is accepted by The Royal 
Bank of Scotland plc in this regard and the recipient should carry 
out such virus and other checks as it considers appropriate. 
Visit our websites at: 
http://www.rbos.com
http://www.rbsmarkets.com 
***

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem with the xsl:import

2006-04-25 Thread Marc Farrow
Geoff,

   As Tim stated.  The XSL:import... tag is an HTTP request.  Even though
it is coming in through the JSP page it is still and HTTP request and not a
relative file path issue in regards to the context.

I think we at least have you on the right path.



On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:

 Marc,

 The xsl:import href=... / statement to include routesummarycontent.xsl
 is in another XSLT script (routesummaryheader.xsl) which is loaded
 correctly
 from a JSP (routesummary.jsp) using the command xsl:apply
 nameXml=routesummary xsl=/xsl/routesummaryheader.xsl /.

 To recap; routesummary.jsp calls routesummaryheader.xsl which imports
 routesummarycontent.xsl.

 This has to do with how HTTP requests are processed on your server.
 We _think_ that the XSLT processor used by Tomcat can't use relative paths
 as it doesn't know what context it resides in (even if Tomcat does).

 Thanks
 Geoff


 -Original Message-
 From: Marc Farrow [mailto:[EMAIL PROTECTED]
 Sent: 25 April 2006 13:03
 To: Tomcat Users List
 Subject: Re: Problem with the xsl:import


 This has to do with how HTTP requests are processed on your server.  You
 control (by url pattern matching or some other technique) which service
 (Tomcat or Apache) gets to handle the request.

 Help me out a bit here.  What language the tag XSL belong to?  Is it a
 JSP tag or an HTML tag or what?



 On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:
 
  Marc,
 
  Again thanks for the reply, we've kind of done what you say should
  work - it appears not to work.
 
  We have put in
 
  xsl:import href=/aaem/xsl/routesummarycontent.xsl /
 
  And also (I think this is more correct as we're already at the aaem
  level)
 
  xsl:import href=/xsl/routesummarycontent.xsl /
 
  Neither work.
 
  I'm pretty sure that alias is set correctly as if I put
  http://myserver:thisport/aaem/xsl/routesummarycontent.xsl into a web
  browser the XSLT script is found.
 
  I'm not sure quite what you mean by make sure XSL content is
  Processed by Tomcat. I assume this is happening as if we put in the
  full address the XSLT is processed with no problem.
 
  Thanks
  Geoff Bland
 
 
  -Original Message-
  From: Marc Farrow [mailto:[EMAIL PROTECTED]
  Sent: 25 April 2006 12:29
  To: Tomcat Users List
  Subject: Re: Problem with the xsl:import
 
 
  It is not impossible.  Try
 
  xsl:import href=/aaem/xsl/routesummarycontent.xsl /
 
  You just have to make sure that the XSL content is either
 
  1)  Processed by Tomcat (by your connector properties)
 a)  in the MOD_JK* worlds, this is making sure the URL pattern
  matching is set to forward
  the appropriate requests to Tomcat.  In other connectors, you
  will have to do basically
  the same thing by whatever means is needed with that
  connector.
  2)  Apache can see the aaem webapp via an alias.
 
  We use the second method.  You let Apache handle all requests that do
  not require a servlet container and forward everything else (JSPs and
  servlets)
  to Tomcat.  This works even if we have static content within our
  Tomcat webapp.
 
  hth
 
 
  On 4/25/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:
  
   Marc,
  
   Thanks for the reply.
  
   We can put in an import of the form
  
   xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl;
   /
  
   and that works fine (for a single web server).
  
   But we have multiple web servers on the box (using different ports
   and different install paths) and they may be different versions
   (development, UAT, production) having different versions of
   routesummarycontent.xsl. If we use the import above all servers end
   up selecting the XSL for just one of the versions.
  
   We don't want to have a different import for each version either as
   that will need modifying as we migrate updated versions between
   servers.
  
   What we need is a relative import, for example,
  
   xsl:import href=/xsl/routesummarycontent.xsl /  !-- doesn't
   work
   --
  
   But I'm thinking this is impossible.
  
   Thanks
   Geoff
  
  
   -Original Message-
   From: Marc Farrow [mailto:[EMAIL PROTECTED]
   Sent: 21 April 2006 14:41
   To: Tomcat Users List
   Subject: Re: Problem with the xsl:import
  
  
   You need to put the XML import file (in your case
   routesummarycontent.xsl) somewhere that whomever is providing the
   resource (Apache or Tomcat) can see it.  Let me try to elaborate.
  
   We use an AJP connector with Tomcat and receives requests from
   Apache on port 8009.  We forward all Servlet stuff to the Tomcat,
   but we let Apache handle everything else.  Even images, js files,
   etc that are contained within a web application (context).  In order
   to accomplish this, we have an alias set up for each web application
   in Apache.  Thus, when we go to
   http://localhost/mywebapp/js/myjsfile.js we know that Apache is
   pulling
  up
   that page.  However, if we have a js file in a JSP page

Re: Problem with the xsl:import

2006-04-21 Thread Marc Farrow
You need to put the XML import file (in your case routesummarycontent.xsl)
somewhere that whomever is providing the resource (Apache or Tomcat) can see
it.  Let me try to elaborate.

We use an AJP connector with Tomcat and receives requests from Apache on
port 8009.  We forward all Servlet stuff to the Tomcat, but we let Apache
handle everything else.  Even images, js files, etc that are contained
within a web application (context).  In order to accomplish this, we have an
alias set up for each web application in Apache.  Thus, when we go to
http://localhost/mywebapp/js/myjsfile.js we know that Apache is pulling up
that page.  However, if we have a js file in a JSP page that is referenced
such as

script src=/mywebapp/js/myjsfile.js language=Javascript/script

we know that Tomcat is processing the JSP page, but Apache is processing the
handling of sending the JS file to the client.  As this is another http
request inside the page that was request.

So, the short of it is that you need to place your XSL somewhere that can be
accessed via HTTP.  So you need to either move the XSL file to a place where
an alias is defined for Apache (even root) or create an alias for your
Tomcat context and then point your html tag to:

xsl:import href=http://localhost/aaem/xsl/routesummarycontent.xsl; /

HTH



On 4/21/06, BLAND, Geoff, GBM [EMAIL PROTECTED] wrote:

 Using Apache Tomcat 5.0.28 I'm having a problem with the xsl:import
 command.

 I have several Tomcat running on the same server (they could be different
 releases of code so can't share resources).

 An XSLT script is called via a JSP to convert XML to HTML (xsl:apply
 nameXml=routesummary xsl=/xsl/routesummaryheader.xsl /).

 This routesummaryheader.xsl script then needs to call another XSLT script
 routesummarycontent.xsl and it does this via an import, for example,

 xsl:import href=http://localhost:8080/aaem/xsl/routesummarycontent.xsl;
 /

 Now this works fine.

 But I run many Tomcat servers on this box and so a specific URI is no
 good.
 So I want to replace that import with a relative URI

 xsl:import href=routesummarycontent.xsl /

 This does not work, I get Had IO Exception with stylesheet file:
 routesummarycontent.xsl.

 Note routesummaryheader.xsl and routesummarycontent.xsl are in the same
 directory.

 I've tried all kinds of relative paths in the import nothing seems to
 work.

 The JSP file is under webapps\app-dir\jsp. The XSLT files are under
 webapps\app-dir\xsl.


 How do I fix this?


 ***
 The Royal Bank of Scotland plc. Registered in Scotland No 90312.
 Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB.
 Authorized and regulated by the Financial Services Authority

 This e-mail message is confidential and for use by the
 addressee only. If the message is received by anyone other
 than the addressee, please return the message to the sender
 by replying to it and then delete the message from your
 computer. Internet e-mails are not necessarily secure. The
 Royal Bank of Scotland plc does not accept responsibility for
 changes made to this message after it was sent.

 Whilst all reasonable care has been taken to avoid the
 transmission of viruses, it is the responsibility of the recipient to
 ensure that the onward transmission, opening or use of this
 message and any attachments will not adversely affect its
 systems or data. No responsibility is accepted by The Royal
 Bank of Scotland plc in this regard and the recipient should carry
 out such virus and other checks as it considers appropriate.
 Visit our websites at:
 http://www.rbos.com
 http://www.rbsmarkets.com

 ***

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




--
Marc Farrow