Jay,

I did that just last night.  I got:

C:\Program Files\Apache Group\Tomcat 4.1\webapps\htmaint\WEB-INF\work_xml

Franklin Phan
Cygna Energy Services
www.cygna.net

Jay Burgess wrote:
Why don't you do:
  System.out.println(getServletContext().getRealPath(XML_WORK_PATH));

And see what it tells you.  I'd be curious to see what you're passing to the
StreamSource constructor, and how it differs from my string.

Jay
-----Original Message-----
From: Franklin Phan [mailto:[EMAIL PROTECTED] Sent: Thursday, August 25, 2005 4:52 PM
To: Tomcat Users List
Subject: Re: Malformed URL Exception: unknown protocol: c

To make things a bit more puzzling, I have a different app inside the same
Tomcat 4.1.18 that uses the same XSL Transform class under its own web app
context. That app works without a hitch. Why is that?


Jay Burgess wrote:

First, I assume you mean CLASSPATH and /lib, or PATH and /bin, but not CLASSPATH
and /bin?

Second, your situation has me puzzled.  Mark's answer appears correct, as
"unknown protocol: c" is typically the "C:\" of a Windows filesystem path.  And
checking the documentation, StreamSource requires a URI, so a windows filesystem
path won't work.

However...my code does something very similar, and it works. The only difference
is that I'm doing it for a StreamResult, not a StreamSource:

String root = getServletContext().getRealPath("");
String xmlFileName = root + File.separator + "WEB-INF" + File.separator + "TestData.xml";
TransformerFactory.newInstance().newTransformer().transform(
   new DOMSource(buffer),
   new StreamResult(xmlFileName)); // DOM into XML

I just threw in a quick println(), and "xmlFileName" is equal to
"C:\tomcat-5.0.19\webapps\TestApp\WEB-INF\TestData.xml".

Can anyone explain why mine works and Franklin's fails?  Maybe I'm missing
something obvious.

Jay

| Jay Burgess [Vertical Technology Group]
| "Essential Technology Links"
| http://www.vtgroup.com/


-----Original Message-----
From: Mark Thomas [mailto:[EMAIL PROTECTED] Sent: Thursday, August 25, 2005 4:21 PM
To: Tomcat Users List
Subject: Re: Malformed URL Exception: unknown protocol: c

I assume becuase the url you pass it starts c:\ as that is the start of the XML_WORK_PATH. You need to prefix it with file:/// (or however many slashes you need to get this to work in windows).

Mark

Franklin Phan wrote:


I use Windows XP Pro. My JAVA_HOME environment variable points to c:\j2sdk1.4.2_05. The CLASSPATH is set to have as the first element "%JAVA_HOME%\bin". I've written an XSL Transform servlet that makes use of the package javax.xml.transform. Why do I get the following error:

javax.servlet.ServletException:
javax.xml.transform.TransformerConfigurationException:
javax.xml.transform.TransformerException:
java.net.MalformedURLException: unknown protocol: c

The four lines above actually appear altogether in one line. And the error appears to be due to the following piece of code where I'm trying to get the path to a folder on the local drive to access a file:

String XML_WORK_PATH = "/WEB-INF/work_xml";
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer =
tFactory.newTransformer(new


javax.xml.transform.stream.StreamSource(getServletContext().getRealPath(XML_WORK_PATH)


+ "\\" + xslParam)); //xslParam is an XSL file name


The Malformed URL Exception does not occur on another machine running Windows XP Server.





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





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

Reply via email to