3

我正在编码使用 Netbeans 在 Java 中使用 Sharepoint 2010 Web 服务。我可以使用提供的向导从 WSDL 创建 Web 服务客户端。当我调用以下代码时,我得到Microsoft.SharePoint.SoapServer.SoapServerException

import java.net.Authenticator;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;

import proxy.webs.GetWebCollectionResponse;
import proxy.webs.GetWebResponse;
import proxy.webs.Webs;
import proxy.webs.WebsSoap;

public class AccessLists {

    public static void main(String[] args) throws Exception {
        String username = "domain\\Administrator";
        char[] password = "password".toCharArray();
        NtlmAuthenticator ntlmAuth = new NtlmAuthenticator(username, password);
        Authenticator.setDefault(ntlmAuth);

        Webs websService = new Webs(new URL("http://servername:7766/_vti_bin/Webs.asmx?wsdl"));
        WebsSoap webPort = websService.getWebsSoap();
        GetWebResponse.GetWebResult webRes = webPort.getWeb("http://servername/sites/Test1");
        System.out.println(webRes);
    }
}

该站点http://servername/sites/Test1存在,我可以在浏览器中打开它。

更新 1:C# 代码发生了类似的事情,我在与 Sharepoint 2010 相同的机器上运行它:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Webs webService = new Webs();
            webService.Credentials = System.Net.CredentialCache.DefaultCredentials;
            Object o = webService.GetWeb("http://servername/sites/Test1");
            Console.WriteLine(o.ToString());
        }
    }
}

我想这是设置的问题,而不是代码的问题。

4

1 回答 1

0

我为 Web 服务使用了错误的端点。对于 Sharepoint 站点http://servername/sites/Test1,端点也应该是http://servername/sites/Test1/_vti_bin/Webs.asmx?wsdl

于 2012-06-09T20:22:57.433 回答