Hello,
I am trying to parse the XML files that the user selects(XML files are
on anoher OS400 system called "wkdis3"). But i am permenantly getting
that error:
Directory0: \\wkdis3\ROOT\home
Canonicalpath-Directory4: \\wkdis3\ROOT\home\bwe\
You selected the file named AAA.XML
getXmlAlgorithmDocument(): IOException Not logged in
sun.net.ftp.FtpLoginException: Not logged in
at sun.net.ftp.FtpClient.readReply(Unknown Source)
at sun.net.ftp.FtpClient.issueCommand(Unknown Source)
at sun.net.ftp.FtpClient.login(Unknown Source)
at sun.net.http://www.protocol.ftp.FtpURLConnec...onnect(Unknown Source)
at sun.net.http://www.protocol.ftp.FtpURLConnec...Stream(Unknown
Source)
at org.apache.xerces.impl.XMLEntityManager.setupCurre ntEntity(Unknown
Source)
at org.apache.xerces.impl.XMLVersionDetector.determin eDocVersion(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.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(U nknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at ParseTest.<init>(ParseTest.java:110)
at ParseTest.main(ParseTest.java:221)
Below is my sourcefile ParseTest.java..Does anyone any idea about how
to fix that IOException with ftp..for validating xerces i had to set
some feautures from an URI. I thought maybe that could be the
reason.Any idea?
import java.io.File;
import java.io.IOException;
//import java.util.HashMap;
//import java.util.Map;
import javax.swing.JFileChooser;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
//import org.apache.excalibur.source.SourceParameters;
//import org.apache.excalibur.source.SourceResolver;
import org.w3c.dom.Document;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import com.ibm.as400.access.AS400;
import com.ibm.as400.access.IFSJavaFile;
import com.ibm.as400.vaccess.IFSFileSystemView;
public class ParseTest {
private File file;
public ParseTest(File file)
{
this.file=file;
DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();
//Logging with anonymus user,resolving ftp source
//ftp://user:password@(protected):port/path
/* SourceParameters params = new SourceParameters();
params.setParameter("user", "anonymous");
params.setParameter("password", "");
Map map = new HashMap();
map.put(SourceResolver.URI_PARAMETERS, params);
targetSrc = resolver.resolveURI("http://xml.org/sax/features/validation",
null,map);
*/
// set attributes for validation (including xml schema)
try {
// factory.setAttribute(targetSrc, new Boolean(true));
factory.setAttribute("http://xml.org/sax/features/validation", new
Boolean(true));
factory.setAttribute("http://apache.org/xml/features/validation/schema",
new Boolean(true));
factory.setValidating(true);
}catch (IllegalArgumentException e) {
// thrown if the underlying implementation doesn't recognize the
attributes
System.out.println("Underlying implementation doesn't recognize
the attribute.");
System.out.println("getXmlAlgorithmDocument():Ille galArgumentException
" + e.getMessage()+ "\n");
e.printStackTrace();
//return null;
}
DocumentBuilder builder = null;
Document doc = null;
ErrorHandler errorHandler = new MyErrorHandler();
try {
// get an instance of a builder
builder = factory.newDocumentBuilder();
// Register the error handler
builder.setErrorHandler(new MyErrorHandler());//If an application
does not register an ErrorHandler, XML parsing errors will go
unreported and bizarre behaviour may result.
}
catch (ParserConfigurationException e) {
System.out.println("getXmlAlgorithmDocument():Pars erConfigurationException
" + e.getMessage()+ "\n");
e.printStackTrace();
// return null;
}
try {
// parse the algorithm file and get document
doc = builder.parse(file);
}
catch (SAXParseException e) {
System.out.println("\n** Parsing error" + ", line " +
e.getLineNumber()
+ ", uri " + e.getSystemId());
System.out.println("getXmlAlgorithmDocument(): SAXParseException "
+ e.getMessage()+ "\n");
e.printStackTrace();
// return null;
}
catch (SAXException e) {
// parser throws SAXException ,If any parse errors occur
System.out.println("getXmlAlgorithmDocument(): SAXException " +
e.getMessage()+ "\n");
e.printStackTrace();
// return null;
}
catch (IOException e) {
// parser throws IOException
System.out.println("getXmlAlgorithmDocument(): IOException " +
e.getMessage()+ "\n");
e.printStackTrace();
// return null;
}
catch (IllegalArgumentException e) {
// parser throws IllegalArgumentException, If the file is null
System.out.println("getXmlAlgorithmDocument():
IllegalArgumentException " +
e.getMessage()+ "\n");
e.printStackTrace();
// return null;
}
}
public static void main(String[] args) throws IOException {
// Work with /Dir/File.txt on the system wkdis3.
AS400 system = new AS400("wkdis3");
IFSJavaFile dir = new IFSJavaFile(system, "//wkdis3/ROOT/home/bwe/");
String directory0 = dir.getParent();
System.out.println ("Directory0: " + directory0);
String directory4=dir.getCanonicalPath();
System.out.println ("Canonicalpath-Directory4: " + directory4);
// IFSJavaFile dir = new IFSJavaFile( "\\wkdis3\ROOT\home\bwe");
JFileChooser chooser = new JFileChooser(dir, new
IFSFileSystemView(system));
Frame parent = new Frame();
int returnVal = chooser.showOpenDialog(parent);
if (returnVal == JFileChooser.APPROVE_OPTION) {
IFSJavaFile chosenFile =
(IFSJavaFile)(chooser.getSelectedFile());
System.out.println("You selected the file named " +
chosenFile.getName());
String filename = chosenFile.getName();
// XML files are here:("\\wkdis3\ROOT\home\bwe\AABB.XML");
//IFSJavaFile file = new IFSJavaFile(system,directory4+filename);
//File f=file;
File f=new File(directory4+filename);
ParseTest xIncludeTest = new ParseTest(f);
}
}
}
class MyErrorHandler implements ErrorHandler {
/
public void warning(SAXParseException exception) throws SAXException
{
System.out.println("**Parsing Warning**\n" +
" Line: " +exception.getLineNumber() + "\n" +
" URI: " +exception.getSystemId() + "\n" +
" Message: " +exception.getMessage());
throw new SAXException("Warning encountered");
}
public void error(SAXParseException exception) throws SAXException {
System.out.println("**Parsing Error**\n" +
" Line: " +exception.getLineNumber() + "\n" +
" URI: " +exception.getSystemId() + "\n" +
" Message: " +exception.getMessage());
throw new SAXException("Error encountered");
}
public void fatalError(SAXParseException exception) throws
SAXException {
System.out.println("**Parsing Fatal Error**\n" +
" Line: " +exception.getLineNumber() + "\n" +
" URI: " +exception.getSystemId() + "\n" +
" Message: " +exception.getMessage());
throw new SAXException("Fatal Error encountered");
}
}