在Java中包含查询时调用getListItems时获取javax.xml.ws.soap.SOAPFaultException

在Java中包含查询时调用getListItems时获取javax.xml.ws.soap.SOAPFaultException,java,sharepoint,soap-client,Java,Sharepoint,Soap Client,我正在使用Sharepoint SOAP服务获取基于查询的数据。 当我在GetListItems中将查询参数传递为null时,我得到了一个文档列表,但当我传递查询时,它会给我以下错误消息 javax.xml.ws.soap.SOAPFaultException: Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown. at com.sun.xml.internal.ws.fault.S

我正在使用Sharepoint SOAP服务获取基于查询的数据。 当我在GetListItems中将查询参数传递为null时,我得到了一个文档列表,但当我传递查询时,它会给我以下错误消息

javax.xml.ws.soap.SOAPFaultException: Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.
at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)
at com.sun.xml.internal.w's. fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:119)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.internal. w's.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
at $Proxy30.getListItems(Unknown Source)
代码和输入如下

public static Element generateXmlNode(String sXML) throws   ParserConfigurationException,SAXException, IOException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document documentOptions = builder.parse(new InputSource(new StringReader(sXML)));
Element elementOptions = documentOptions.getDocumentElement();
return elementOptions;
}
GetListItems.ViewFields视场=新视场();
viewFields.getContent().add(“”)
GetListItems.Query查询=新建查询(); query.getContent().add(“3”)

这就是我呼叫Sharepoint服务的方式

port.getListItems(listName, "", query, viewFields, rowLimit, null, null);

提前感谢您的时间和帮助。

尝试将值类型更改为
我找到了答案。如下

我们在查询类构造函数中传递一个字符串作为参数,而不需要传递元素类对象。因此,我用一种方法返回元素对象代码,如下所示

public static Element generateXmlNode(String sXML) throws   ParserConfigurationException,SAXException, IOException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document documentOptions = builder.parse(new InputSource(new StringReader(sXML)));
Element elementOptions = documentOptions.getDocumentElement();
return elementOptions;
}
而不是
“3”

我正在传递generateXmlNode(“3”)

这解决了我的问题

引用自


谢谢

您可以尝试caml查询设计器,例如:和使用生成的查询。