× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Thank you everybody for the time and effort. The problem was found. I was using the wrong directory for the .dtd in my .xml. I should have known with this error message below and the fact that I moved my classes , .DTD and .XML from my PC to the AS400 IFS directory.

java.net.MalformedURLException: unknown protocol:c



Joe Sam Shirah wrote:

   Hi George,

   Now that we see your code, Joe's answer, and I assume the articles David
pointed to, are exactly  right.  All you need to give it is the file path:
'/TecnoXML/aces.xml'  It doesn't matter if it's an XML or any other type of
stream file, except that you wouldn't use a Reader in the case of a binary
file.  To speed up things, you probably want to use a BufferedReader.

   I was under the impression that you needed a file URL using the file:
protocol.  Wish I had known before, because I spent some review time this
morning.  First, no syntax with "file:" plus anything would *ever* have
worked, because that's a URL, and FileReader constructors are available only
for File, File Descriptor, or a pathname String.

   Since I spent the time, this info may be helpful to others at some
point.  I was on top of the file URL thing in 1998, but I just haven't had a
particular use for it in quite a while.  And Windows, per usual, causes
complications with direct file URL's.  RFC 1738 is pretty much the bible on
URL's, including the file: protocol.  It's at:

http://rfc.net/rfc1738.html

   The info I gave before would work on a Windows box, but not on most
other systems becasue "/" is generally the root of the file system.  The
safest, most generic thing to do when you actually need a file URL is to
create a File object as normal, then use the result of either the toURL() or
toURI().toURL() methods.  Then you don't have to worry about syntax,
slashes, etc. becasue Java will do it for you.

   I've included a brief program below that shows pertinent information.
Some results are:

---------------------------
   Windows, as:  java  FileInfo c:\adir\ACES.xml

AbsoluteFile: c:\adir\ACES.xml
AbsolutePath: c:\adir\ACES.xml
CanonicalFile: C:\adir\ACES.xml
CanonicalPath: C:\adir\ACES.xml
toURI: file:/c:/adir/ACES.xml
toURL: file:/c:/adir/ACES.xml
URI to URL: file:/c:/adir/ACES.xml

---------------------------

AS/400: java with '/TecnoXML/ACES.xml' passed as the argument:

AbsoluteFile: /TecnoXML/ACES.xml
AbsolutePath: /TecnoXML/ACES.xml
CanonicalFile: /TecnoXML/ACES.xml
CanonicalPath: /TecnoXML/ACES.xml
toURI: file:/TecnoXML/ACES.xml
toURL: file:/TecnoXML/ACES.xml
URI to URL: file:/TecnoXML/ACES.xml

---------------------------

   Here's the program:

import java.io.*;
import java.net.*;

public class FileInfo
{
 public static void main( String[] args )
 {
   File f;

   if( args.length != 1 )
   {
     System.out.println( "FileInfo expects exactly 1 filename." );
     System.out.println( "FileInfo ends." );
     return;
   }
   try
   {
     f = new File( args[0] );
     System.out.println( "AbsoluteFile: " + f.getAbsoluteFile() );
     System.out.println( "AbsolutePath: " + f.getAbsolutePath() );
     System.out.println( "CanonicalFile: " + f.getCanonicalFile() );
     System.out.println( "CanonicalPath: " + f.getCanonicalPath() );
     System.out.println( "toURI: " + f.toURI() );
     System.out.println( "toURL: " + f.toURL() );
     System.out.println( "URI to URL: " + f.toURI().toURL() );
   }
   catch( Exception e )
   {
     System.out.println( "Exception: " + e.getMessage() );
   }
 } // end main

} // end class FileInfo



                                                        Joe Sam

Joe Sam Shirah -        http://www.conceptgo.com
conceptGO       -        Consulting/Development/Outsourcing
Java Filter Forum:       http://www.ibm.com/developerworks/java/
Just the JDBC FAQs: http://www.jguru.com/faq/JDBC
Going International?    http://www.jguru.com/faq/I18N
Que Java400?            http://www.jguru.com/faq/Java400


----- Original Message ----- From: "George Lopez" <georgerl@xxxxxxxxxxxx>
To: "Java Programming on and around the iSeries / AS400"
<java400-l@xxxxxxxxxxxx>
Sent: Thursday, May 11, 2006 10:43 AM
Subject: Re: Format of file format in the IFS directory in JAVA


Sorry but it does not work still. I wonder if it's some kind of
authority problem? I wonder if someone else have ever used a .xml file
in AS400 IFS directory to access and parse in JAVA? Any example where
the correct format worked? Thank you.

This is what I used:
file://TecnoXML/aces.xml
This is the error:
java.io.FileNotFoundException: No such path or directory.
file:/TecnoXML/aces.xml

This is what I used:
file:////TecnoXML/aces.xml
This is the error:
java.io.FileNotFoundException: No such path or directory.
file:/TecnoXML/aces.xml

This is part of my JAVA code. Where string variable *file* is filled
with above values. And the line *xr.parse(new InputSource(r)); *is where
I get the error.
FileReader r = new FileReader(file);
       System.out.println("File reader successful");
       *xr.parse(new InputSource(r));*
       System.out.println("Parse successful");

Joe Sam Shirah wrote:

  Hi George,

  Neither of your examples in the message below match what I posted.
The
1 or 3 slashes are *only* for the "file:" protocol.  Any slashes or
backslashes in the file path are separate and additional.

From your last ones:

      > file:/TecnoXML/aces.xml

is completely invalid.


      > file:///TecnoXML/aces.xml

doesn't work ( file: + 2 slashes ), although some docs make it appear
that
it should.


My examples, where myFilePath is "/TecnoXML/ACES.xml" were:

 "file:///" + myFilePath;

  "file:/" + myFilePath;

  Result:

  "file:////TecnoXML/ACES.xml"


  "file://TecnoXML/ACES.xml"

  Let me know if those don't work; maybe I'll have some time tomorrow
to
check it out if that's the case, but IIRC, should do.


                                                       Joe Sam

Joe Sam Shirah -        http://www.conceptgo.com
conceptGO       -        Consulting/Development/Outsourcing
Java Filter Forum:       http://www.ibm.com/developerworks/java/
Just the JDBC FAQs: http://www.jguru.com/faq/JDBC
Going International?    http://www.jguru.com/faq/I18N
Que Java400?            http://www.jguru.com/faq/Java400


----- Original Message ----- From: "George Lopez" <georgerl@xxxxxxxxxxxx>
To: "Java Programming on and around the iSeries / AS400"
<java400-l@xxxxxxxxxxxx>
Sent: Wednesday, May 10, 2006 5:27 PM
Subject: Re: Format of file format in the IFS directory in JAVA




Yes my JAVA program is not locating files in the AS400 IFS directory. I
am running this program in the AS400 which also means I moved the jar
and classes from my PC to the IFS directory too. The 1 to 3 slashes
still does not work (Look below). The syntax I am using in Windows is
C:\\Developement\\xml\\aces.xml. I also made sure this time I used the
same case for the directory and file.

Thanks


file:/TecnoXML/aces.xml
java.io.FileNotFoundException: No such path or directory.
file:/TecnoXML/aces.xml

file:///TecnoXML/aces.xml
java.io.FileNotFoundException: No such path or directory.
file:/TecnoXML/aces.xml


Joe Sam Shirah wrote:



 Hi George,

 So I take it your question is how to locate files?

 To the best of my recollection, and I don't have time to double
check
now, technically the "file:" protocol requires three ( 3 ) slashes.  It
also, for reasons I forget, will ( usta ) work with one ( 1 ) slash.
It
will not work with two slashes.

 Examples for /TecnoXML/ACES.xml:

 "file:///" + myFilePath;

 "file:/" + myFilePath;

 Result:

 "file:////TecnoXML/ACES.xml"


 "file://TecnoXML/ACES.xml"

 Incidentally, Java parsing for file structure will work with forward
slashes even for Windows, so you can avoid intermixing slashes and
backslashes.

 Still, it should work the same on all platforms.  What syntax are
you
using on Windows?


                                                      Joe Sam

Joe Sam Shirah -        http://www.conceptgo.com
conceptGO       -        Consulting/Development/Outsourcing
Java Filter Forum:       http://www.ibm.com/developerworks/java/
Just the JDBC FAQs: http://www.jguru.com/faq/JDBC
Going International?    http://www.jguru.com/faq/I18N
Que Java400?            http://www.jguru.com/faq/Java400


----- Original Message ----- From: "George Lopez" <georgerl@xxxxxxxxxxxx>
To: <java400-l@xxxxxxxxxxxx>
Sent: Wednesday, May 10, 2006 2:20 PM
Subject: Format of file format in the IFS directory in JAVA






I have an java xml parser developed in Eclipse. When I run the parser
in
Websphere Development Studio and use the xml in my C: drive it works.
But if I put the xml in the ifs directory in the AS400 I get error
message below.....

The IFS directory in the as400 is...
/TecnoXML/ACES.xml


Error if i use:  /TecnoXML/ACES.xml
java.net.MalformedURLException: unknown protocol:

Error if i use:  file:///TecnoXML/ACES.xml
java.io.FileNotFoundException: No such path or directory.
file:/TecnoXML/Aces.xml

Error if i use:  file:\\\TecnoXML/ACES.xml
java.io.FileNotFoundException: No such path or directory.
file:\\\TecnoXML/ACES.xml

--
This is the Java Programming on and around the iSeries / AS400


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.