I got the WebdavException when I am trying to authenticate to the MS Exchange 2003 
Server which is
configured on Https with OWS.
while accessing the following URL https://192.12.0.38/Exchnage, it should redirect to
https://192.12.0.38/exchweb/bin/auth/owalogon.asp?url=https://192.12.0.38/Exchange&reason=0
 for
further authentication. But it is not happening.

Please Help me



Here is the Exception Stack Trace
Exception raised at processMailboxFolders
org.apache.webdav.lib.WebdavException
        at org.apache.webdav.lib.WebdavFile.listFiles(WebdavFile.java:379)
        at org.apache.webdav.lib.WebdavFile.listFiles(WebdavFile.java:358)
        at wefTest.processMailboxFolders(wefTest.java:143)
        at wefTest.<init>(wefTest.java:112)
        at wefTest.main(wefTest.java:234)






And here is the Sample Code

import javax.xml.parsers.*; //PRITHVI
import org.apache.webdav.lib.*;
import java.net.*;
import java.io.*;
import org.apache.commons.httpclient.HttpClient;
import org.apache.util.WebdavStatus;
import org.apache.webdav.lib.methods.*;
import org.apache.webdav.lib.properties.*;
import org.apache.commons.httpclient.HttpsURL;
import org.apache.webdav.lib.WebdavFile;




public class wefTest
{

        protected org.apache.commons.httpclient.HttpsURL url;
        
        protected org.apache.commons.httpclient.HttpsURL url99;
        
        protected org.apache.webdav.lib.WebdavResource wdfr;

        protected org.apache.webdav.lib.WebdavFile wdfile;
        //protected WebdavFile wdfile;

        protected String username;

        protected String password;

        protected String hostname;

        protected int port;

        protected String path;

        protected String mailbox;

        protected String targetPath;


        // Constructor

        public wefTest(String username, String password, String hostname, int port, 
String path, String
targetPath) throws Exception
        {
                this.username=username;
                this.password=password;
                this.hostname=hostname;
                this.port=port;
                this.path=path;
                this.mailbox=null;
                this.targetPath=targetPath;

                java.io.File targetFolder= new java.io.File(targetPath);

                if (!targetFolder.exists())
                {
                        targetFolder.mkdir();
                }


                java.util.Vector names=new java.util.Vector();
                names.add("Administrator");

                
System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
                System.setProperty("javax.net.ssl.trustStore","comp38.jks");
                
                //System.setProperty("javax.net.ssl.trustStorePassword", "irah"); 


                for(java.util.Enumeration 
enum=names.elements();enum.hasMoreElements();)
                {
                        this.mailbox=(String)enum.nextElement();

                        // Initializing target parameters
                        url = new 
org.apache.commons.httpclient.HttpsURL(username,password,hostname, port,
path+"/"+mailbox);
                        // Initializing webdave file object
                        wdfile= new org.apache.webdav.lib.WebdavFile(url);

                        processMailboxFolders();
                }
        }



        protected void processMailboxFolders() throws Exception
        {

                System.out.println("Processing MailBox : "+mailbox+"  ....... \n");

                java.io.File mailFolder= new java.io.File(targetPath+"/"+mailbox);

                if (!mailFolder.exists())
                {
                        mailFolder.mkdir();
                }

                // Fetch all folder list

                try
                {

                        java.io.File folders[] = wdfile.listFiles();

                        for (int i=0;i<folders.length;i++ )
                        {
                                // process all objects present in this folder
                                        System.out.println("Processing Folder : 
"+folders[i].getName()+"  ... \n");
                                        //if(folders[i].getName().indexOf("Inbox")==-1)
                                        //      continue;
                                        processFolder(folders[i].getName());
                        }

                }
                catch(Exception ee) // mailbox not created
                {
                        System.out.println("Exception raised at processMailboxFolders 
");
                        ee.printStackTrace();
                        //throw ee;
                }
        }

        protected void processFolder(String folder) throws Exception
        {
                        
                //System.out.println("\r\n\r\n-------------- Folder : 
"+folder+"--------------");

                System.err.println(username+" "+password+" "+hostname+" "+port+" 
"+path+"/"+mailbox+"/"+
java.net.URLDecoder.decode(folder));
                
                org.apache.commons.httpclient.HttpsURL urlMailboxFolder = new
org.apache.commons.httpclient.HttpsURL(username,password,hostname,port,path+"/"+mailbox+"/"+
java.net.URLDecoder.decode(folder)); 

                org.apache.webdav.lib.WebdavResource wdfr= new
org.apache.webdav.lib.WebdavResource(urlMailboxFolder);


                org.apache.commons.httpclient.HttpClient 
client=wdfr.retrieveSessionInstance();
                java.util.Vector properties= new java.util.Vector();
                properties.addElement("DAV:displayname");

                PropFindMethod method = new
PropFindMethod(urlMailboxFolder.toString(),Integer.MAX_VALUE,properties.elements());//Integer.MAX_VALUE

                        int status = client.executeMethod(method);
                        java.util.Vector results = new java.util.Vector();
                        java.util.Enumeration responses = method.getResponses();
                        ResponseEntity response =null; 
                        while (responses.hasMoreElements()) 
                        {
                                        response = (ResponseEntity) 
responses.nextElement();

                                                java.util.Enumeration properties1 = 
method.getResponseProperties(response.getHref());
//response.getProperties();
                                    while (properties1.hasMoreElements()) {
                                            Property property = (Property) 
properties1.nextElement();
                                            }

                        }




                org.apache.webdav.lib.WebdavResource resourceList[]= 
wdfr.listWebdavResources();

                String rlist[]=wdfr.list();

                int mailCount=0;
                for(int i=0;i<resourceList.length;i++)
                {
                        if(resourceList[i].isCollection())
                        {
                                System.out.println("Folder: 
"+java.net.URLDecoder.decode(resourceList[i].getName()));
                                
processFolder(folder+"/"+java.net.URLDecoder.decode(resourceList[i].getName()));
                        }
                        else
                        {
                                
System.out.println(java.net.URLDecoder.decode(resourceList[i].getName()));
                        
fetchMail(java.net.URLDecoder.decode(folder),java.net.URLDecoder.decode(resourceList[i].getName()));
                                mailCount++;
                        }
                }


                System.out.println("-------------- End of Folder: "+folder+" No of 
Mails:
"+mailCount+"--------------\r\n");
        }



        public static void main(String args[]) throws Exception
        {
                
                wefTest test= new 
wefTest("administrator","comp38","192.12.0.38",443,"/Exchange","c:/aaa");
                
                System.out.println("\nPrithvi Solutions");
        }


        protected void fetchMail(String folder, String filename) throws Exception
        {
                
                        org.apache.commons.httpclient.HttpsURL urlEML = new
org.apache.commons.httpclient.HttpsURL(username,password,hostname, 
port,path+"/"+mailbox+"/"+
folder+"/"+filename ); 
                        System.out.println(urlEML);
                        org.apache.webdav.lib.WebdavResource wdfr= new 
org.apache.webdav.lib.WebdavResource(urlEML);

                        java.io.File mailFolder= new 
java.io.File(targetPath+"/"+mailbox+"/"+folder);
                        
                        if (!mailFolder.exists())
                        {
                                mailFolder.mkdir();
                        }

                        mailFolder= new
java.io.File(targetPath+"/"+mailbox+"/"+folder+"/"+filename.replaceAll(":","%3A")+"_Dir");
                        
                        if (!mailFolder.exists())
                        {
                                mailFolder.mkdir();
                        }

                        java.io.FileOutputStream fos= new
java.io.FileOutputStream(targetPath+"/"+mailbox+"/"+folder+"/"+filename.replaceAll(":","%3A")+"_Dir/"+filename.replaceAll(":","%3A")+".xml");


                        
                        org.apache.commons.httpclient.HttpClient 
client=wdfr.retrieveSessionInstance();
                        java.util.Vector properties= new java.util.Vector();

                        properties.addElement("DAV:autoversion");
                        properties.addElement("DAV:contentclass");
                        properties.addElement("DAV:creationdate");
                        properties.addElement("DAV:displayname");
                        properties.addElement("DAV:getcontentlength");
                        properties.addElement("DAV:getcontenttype");
                        properties.addElement("DAV:getetag");
                        properties.addElement("DAV:getlastmodified");
                        properties.addElement("DAV:href");
                        properties.addElement("DAV:id");
                        properties.addElement("DAV:iscollection");
                        properties.addElement("DAV:isfolder");
                        properties.addElement("DAV:ishidden");
                        properties.addElement("DAV:isreadonly");
                        properties.addElement("DAV:isstructureddocument");
                        properties.addElement("DAV:isversioned");
                        properties.addElement("DAV:lockdiscovery");
                        properties.addElement("DAV:parentname");
                        properties.addElement("DAV:resourcetype");
                        properties.addElement("DAV:revisionid");
                        properties.addElement("DAV:revisionlabel");
                        properties.addElement("DAV:revisionuri");
                        properties.addElement("DAV:supportedlock");
                        properties.addElement("DAV:uid");
                        properties.addElement("DAV:vresourceid");
                        properties.addElement("urn:schemas:httpmail:date");
                        properties.addElement("urn:schemas:httpmail:datereceived");
                        properties.addElement("urn:schemas:httpmail:displaycc");
                        properties.addElement("urn:schemas:httpmail:displayto");
                        properties.addElement("urn:schemas:httpmail:from");
                        properties.addElement("urn:schemas:httpmail:fromemail");
                        properties.addElement("urn:schemas:httpmail:fromname");
                        properties.addElement("urn:schemas:httpmail:hasattachment");
                        properties.addElement("urn:schemas:httpmail:htmldescription");
                        properties.addElement("urn:schemas:httpmail:importance");
                        
properties.addElement("urn:schemas:httpmail:normalizedsubject");
                        properties.addElement("urn:schemas:httpmail:read");
                        properties.addElement("urn:schemas:httpmail:sendername");
                        properties.addElement("urn:schemas:httpmail:subject");
                        properties.addElement("urn:schemas:httpmail:submitted");
                        properties.addElement("urn:schemas:httpmail:textdescription");
                        properties.addElement("urn:schemas:httpmail:thread-topic");
                        properties.addElement("urn:schemas:httpmail:to");
                        properties.addElement("urn:schemas:mailheader:content-class");
                        properties.addElement("urn:schemas:mailheader:date");
                        properties.addElement("urn:schemas:mailheader:from");
                        properties.addElement("urn:schemas:mailheader:message-id");
                        properties.addElement("urn:schemas:mailheader:received");
                        properties.addElement("urn:schemas:mailheader:subject");
                        properties.addElement("urn:schemas:mailheader:thread-index");
                        properties.addElement("urn:schemas:mailheader:thread-topic");
                        properties.addElement("urn:schemas:mailheader:to");

                        PropFindMethod method = new
PropFindMethod(urlEML.toString(),Integer.MAX_VALUE,properties.elements());

                        int status = client.executeMethod(method);
                        java.util.Vector results = new java.util.Vector();

                        java.util.Enumeration responses = method.getResponses();

                        if (responses.hasMoreElements()) 
                        {
                                        ResponseEntity response = (ResponseEntity) 
responses.nextElement();
                                        //System.out.println(response.toString());
                                        fos.write(response.toString().getBytes());
                        }

                        fos.close();

                        java.util.Enumeration 
enum=wdfr.propfindMethod("urn:schemas:httpmail:hasattachment");
                        for (; enum.hasMoreElements() ;) 
                        {
                          int i= Integer.parseInt((String)enum.nextElement());
                          if(i==1)
                                processAttachments(folder,filename);
                        }

        }

        protected void processAttachments(String folder,String filename) throws 
Exception
        {

                org.apache.commons.httpclient.HttpsURL urlEML = new
org.apache.commons.httpclient.HttpsURL(username,password,hostname, 
port,path+"/"+mailbox+"/"+
folder+"/"+filename ); 
                org.apache.webdav.lib.WebdavResource wdfr= new 
org.apache.webdav.lib.WebdavResource(urlEML);

                org.apache.commons.httpclient.HttpClient 
client=wdfr.retrieveSessionInstance();
                        
                java.util.Vector properties= new java.util.Vector();

                //properties.addElement("urn:schemas:httpmail:attachmentfilename");

                AttFindMethod method = new 
AttFindMethod(urlEML.toString(),0,properties.elements());
                int status = client.executeMethod(method);
                
            java.util.Enumeration responses = method.getResponses();

                if (responses.hasMoreElements()) 
                {
                                ResponseEntity response = (ResponseEntity) 
responses.nextElement();
                                java.io.FileOutputStream fos= new
java.io.FileOutputStream(targetPath+"/"+mailbox+"/"+folder+"/"+filename.replaceAll(":","%3A")+"_Dir/"+filename.replaceAll(":","%3A")+"_ATT.xml");

                                fos.write(response.toString().getBytes());
                                fos.close();

                                //System.out.println(response.toString());
                                
                                ByteArrayInputStream in=new 
ByteArrayInputStream(response.toString().getBytes());
                                
                                SAXParserFactory factory = 
javax.xml.parsers.SAXParserFactory.newInstance();
                                factory.setNamespaceAware(true);
                                SAXParser parser = factory.newSAXParser();
                                // Create a handler object to implement the callbacks
                                AttachmentParser handler = new AttachmentParser();
                                //parse the PDF stream that contains XML info
                                parser.parse(in, handler);
                                java.util.Vector results = 
handler.getAttachmentNames();

                                for(java.util.Enumeration 
attNames=results.elements();attNames.hasMoreElements();)
                                {
                                        //System.out.println(attNames.nextElement());
                                        
fetchAttachment(folder,filename,(String)attNames.nextElement());
                                }
                }
        }

        protected void fetchAttachment(String folder,String filename, String attname) 
throws Exception
        {

                attname= URLDecoder.decode(attname);

                //System.out.println("Attachment Name :"+attname);

                org.apache.commons.httpclient.HttpsURL urlEML = new
org.apache.commons.httpclient.HttpsURL(username,password,hostname, 
port,path+"/"+mailbox+"/"+
folder+"/"+filename+"/"+attname+"/" ); 
                org.apache.webdav.lib.WebdavResource wdfr= new 
org.apache.webdav.lib.WebdavResource(urlEML);

        
//System.out.println(targetPath+"/"+mailbox+"/"+folder+"/"+filename.replaceAll(":","%3A")+"_Dir/"+attname);
                try
                {

                        File f= new
File(targetPath+"/"+mailbox+"/"+folder+"/"+filename.replaceAll(":","%3A")+"_Dir/"+attname);
                        boolean bool=wdfr.getMethod(f) ;

                }
                catch(Exception ex) {}
        }
};

 



Please Help as soon as possibel to close this problem

Thanks
Sudhakar

=====
"No one can earn a million dollars honestly."- William Jennings Bryan (1860-1925) 

"Make everything as simple as possible, but not simpler."- Albert Einstein (1879-1955)

"It is dangerous to be sincere unless you are also stupid."- George Bernard Shaw 
(1856-1950)


                
__________________________________
Do you Yahoo!?
Yahoo! Mail is new and improved - Check it out!
http://promotions.yahoo.com/new_mail

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

Reply via email to