SharePoint List Service Recursive not working
        Posted  
        
            by stranger001
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by stranger001
        
        
        
        Published on 2009-11-17T22:30:20Z
        Indexed on 
            2010/05/12
            9:04 UTC
        
        
        Read the original article
        Hit count: 262
        
sharepoint
Hi, I am using the following code to retrieve the documents in a list. Its working fine. However, it only returns documents and folders in root of the doc library. Is there any thing wrong I am doing here? I am looking for files in sub folders with recursive mode.
Service service = new Service();
    service.setMaintainSession(true);
    call    = (Call) service.createCall();
    call.setTargetEndpointAddress( new java.net.URL("<host>/_vti_bin/lists.asmx") );
    call.setOperationName(new QName("http://schemas.microsoft.com/sharepoint/soap/","GetListItems"));
    call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean("true"));
    call.setProperty(Call.SOAPACTION_URI_PROPERTY,"http://schemas.microsoft.com/sharepoint/soap/GetListItems");
  call.addParameter(new javax.xml.namespace.QName("http://schemas.microsoft.com/sharepoint/soap/", "listName"),
    new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"),
    java.lang.String.class,
    javax.xml.rpc.ParameterMode.IN);
   MessageElement me = 
        new MessageElement(new QName("QueryOptions"));
    me.addChildElement(new MessageElement(new QName(
    "IncludeMandatoryColumns"))).addTextNode("true");
    me.addChildElement(new MessageElement(new QName(
    "ViewAttributes"))).addAttribute(javax.xml.soap.SOAPFactory.newInstance().createName("Scope"), "Recursive");
    MessageElement[] me1 = {me}; 
    String strMyString = ""
        + "<Query>"
        + "<OrderBy><FieldRef Name=\"ows_Modified\" Ascending=\"TRUE\" /></OrderBy>"
        + "</Query>";
        MessageElement[] meArray = { getMeFromString(strMyString) };// Array
    call.addParameter("query",org.apache.axis.Constants.XSD_SCHEMA,
    		javax.xml.rpc.ParameterMode.IN);	
    call.addParameter("queryOptions",org.apache.axis.Constants.XSD_SCHEMA,
    		javax.xml.rpc.ParameterMode.IN);	
    call.setReturnType(org.apache.axis.Constants.XSD_SCHEMA);
   Schema ret = (Schema)call.invoke(new Object[] {"listGUID",meArray, me1 });
   public org.apache.axis.message.MessageElement getMeFromString(final String strMyString) {
    DocumentBuilder docBuilder = null;
    try {
        docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    } catch (final ParserConfigurationException e) {
        e.printStackTrace();
    } catch (final FactoryConfigurationError e) {
        e.printStackTrace();
    }
    final StringReader reader = new StringReader(strMyString);
    final InputSource inputsource = new InputSource(reader);
    Document doc = null;
    try {
        doc = docBuilder.parse(inputsource);
    } catch (final SAXException e) {
        e.printStackTrace();
    } catch (final IOException e) {
        e.printStackTrace();
    }
    final Element ele = doc.getDocumentElement();
    final MessageElement msg = new MessageElement(ele);
    return msg;
}
© Stack Overflow or respective owner