2009-11-17 7 views
0

다음 코드를 사용하여 목록의 문서를 검색하고 있습니다. 잘 작동합니다. 그러나 문서 라이브러리의 루트에있는 문서와 폴더 만 반환합니다. 내가 여기서하고있는 어떤 것이 잘못 되었습니까? 재귀 모드로 하위 폴더에있는 파일을 찾고 있습니다.SharePoint 목록 서비스 재귀 작동하지 않습니다.

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; 
} 

답변

0

query.ViewAttributes = "범위 = 'RecursiveAll'"

관련 문제