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]

Reply via email to