RE: Problem with the xsl:import
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
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
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
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
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
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
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
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
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