【发布时间】:2012-02-14 17:10:14
【问题描述】:
SharePoint 新手。
我正在尝试使用 Java 的 CopyIntoItems Web 服务方法将文档上传到 SharePoint,但不断收到 400 Bad Request。我使用 Java 的 wsimport 从 .wsdl 文件生成类文件。这是我生成的类的 Java 代码。
public static void createDocument(CopySoap port) {
String url = SoapPortProvider.spSiteUrl + "/Shared Documents/Temp Folder/test.txt";
String sourceUrl = "http://null";
byte[] content = IoUtil.getBytes(new File("C:/CopyFile/READ-ME.txt"));
FieldInformation descInfo = new FieldInformation ();
descInfo.setDisplayName("Test Doc");
descInfo.setType(FieldType.TEXT);
descInfo.setValue("Test uploaded file");
DestinationUrlCollection urls = new DestinationUrlCollection();
urls.getString().add(url);
FieldInformationCollection infos = new FieldInformationCollection ();
infos.getFieldInformation().add(descInfo);
CopyResultCollection results = new CopyResultCollection ();
Holder<CopyResultCollection> resultHolder = new Holder<CopyResultCollection>(results);
Holder<Long> longHolder = new Holder<Long>(new Long(-1));
port.copyIntoItems(sourceUrl, urls, infos, content, longHolder, resultHolder);
}
我的 SOAP 请求看起来像
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<CopyIntoItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<SourceUrl>http://null</SourceUrl>
<DestinationUrls>
<string>https://www.mysite.com/sites/TestSite/Shared Documents/Temp Folder/test.txt</string>
</DestinationUrls>
<Fields>
<FieldInformation Value="Test uploaded file" DisplayName="Test Doc" Type="Text"/>
</Fields>
<Stream>KioqTWFrZSBzdXJlIHRoZSBjb250ZW50IGlzIHVuZGVyIEM6L0NvcHlGaWxlLy4gICoqKg0KDQpUbyBydW46DQoNCjEuICBFZGl0IHRoZSBkZXBsb3kucHJvcHMgZmlsZS4gIFNwZWNpZnkgdGhlIHNvdXJjZSAoZm9sZGVyIHRoYXQgY29udGFpbiBpdGVtcyB0byBkZXBsb3kpLCBkZXN0aW5hdGlvbiAoZm9sZGVyIHRvIGRlcGxveSB0byksIGFuZCBmaWxlcyAodGhlIGl0ZW1zIHRvIGRlcGxveSkuDQoyLiAgRG91YmxlIGNsaWNrIG9uIGRlcGxveUN1c3RvbWl6YXRpb24uYmF0DQoNCk5vdGUgdGhhdCBhIGxvZyBvZiB0aGUgcHJvZ3Jlc3Mgd2lsbCBiZSBjcmVhdGVkIGluIEM6L0NvcHlGaWxlL2NvcHlGaWxlLmxvZyANCg0KTm90ZSB0aGF0LCBmb3IgcHJlY2F1dGlvbiwgZXhpc3RpbmcgZmlsZSB3aWxsIG5vdCBiZSBvdmVyd3JpdHRlbiwgaW5zdGVhZCB3aWxsIGJlIHNhdmVkIGFzIHlvdXJfY29kZV9maWxlLm9sZA==</Stream>
</CopyIntoItems>
</S:Body>
</S:Envelope>
我得到的回应是
null: HTTP/1.1 400 Bad Request
Content-length: 0
X-powered-by: ASP.NET
Server: Microsoft-IIS/7.5
Date: Tue, 14 Feb 2012 16:29:51 GMT
Microsoftsharepointteamservices: 14.0.0.5138
这并没有告诉我太多。可能缺少什么?
【问题讨论】:
-
http://null的 sourceUrl 看起来很可疑。在这个答案中,看起来将源设置为与目标相同的 URL。 stackoverflow.com/a/998565/1030409 -
我也尝试过,但仍然得到相同的响应。不过还是谢谢。
-
我需要相同的解决方案。尝试以下答案并获得大量编译错误。请帮忙
标签: java web-services sharepoint