unknown protocol: c (JDOM a SAXBuilder)
10,012
Solution 1
My first guess is that you are loading a local file, like: "c:/mylocalfile.xml"
But this URL does not contain the protocol, like http://
, ftp://
or file://
Try file://c:/mylocalfile.xml
Solution 2
Actually, I had space in my folder name which caused this error. Even in case of local files JAVA has the capability of understanding the protocol types.
Author by
Wassim AZIRAR
https://www.malt.fr/profile/wassimazirar I am not looking for permanent contract (no need to contact me for that) I develop 💻 in .NET Core, JavaScript, Angular and React ⚛
Updated on June 07, 2022Comments
-
Wassim AZIRAR almost 2 years
I'm using JDOM with SAXBuilder to parse XML files, and I have a problem with a file which is throwing this error :
java.net.MalformedURLException: unknown protocol: c at java.net.URL.<init>(URL.java:574) at java.net.URL.<init>(URL.java:464) at java.net.URL.<init>(URL.java:413) at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518) at org.jdom.input.SAXBuilder.build(SAXBuilder.java:986) at com.foo.moo.MyClass.getValues(MyClass.java:321)
And the line is :
Document document = null; document = sxb.build(files.elementAt(i)); // This one
After doing some research on the internet, I think the error is related to Java 1.6.
What do you think ?
-
MrDrews over 12 yearsAgree. You can try something like
if(myUrl.getProtocol().equals("c")){myUrl = new URL("file://"+myUrl.toexternalform())}
-
zEro almost 11 yearsYup, you are so right, and as the OP mentioned this seems to be in issue in Java 1.6 and above only.