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

时间:2013-08-17 13:08:19

标签: java sharepoint soap-client

我正在使用Sharepoint SOAP服务来获取查询基础上的数据。 我在GetListItems中将Query参数传递为null时获取文档列表,但是当我传递Query时,它会给出以下错误消息。

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)

代码和输入如下。

GetListItems.ViewFields viewFields = new ViewFields(); viewFields.getContent().add("<ViewFields><FieldRef Name='ID' /></ViewFields>");
GetListItems.Query query = new Query(); query.getContent().add("<Query><Where><Eq><FieldRef Name='ID' /><Value Type='Text'>3</Value> </Eq></Where></Query>");

这就是我调用Sharepoint服务的方式

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

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

2 个答案:

答案 0 :(得分:2)

我找到了答案。如下。

我们在Query类构造函数中传递一个字符串作为参数,而不是传递Element类对象。所以我创建了一个返回Element Object Code的方法,如下所示。

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

而不是"<Query><Where><Eq><FieldRef Name='ID' /><Value Type='Text'>3</Value> </Eq></Where></Query>"

我正在通过generateXmlNode("<Query><Where><Eq><FieldRef Name='ID' /><Value Type='Text'>3</Value> </Eq></Where></Query>")

这解决了我的问题。

引自http://davidsit.wordpress.com/2010/02/10/reading-a-sharepoint-list-with-java-tutorial/

由于

答案 1 :(得分:0)

尝试将值类型更改为<Value type='Counter'>