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]