2

我必须从 Java 客户端调用 SharePoint 2010 Lists 服务。

我使用 NetBeans 从 WSDL 生成 JAX-WS 类。

并扩展 java.net.Authenticator 来管理对 SharePoint 的身份验证:

static final String user = "XXXXXXXX\\Administrateur"; // your account name
static final String pass = "mypassw"; // your password for the account

static class MyAuthenticator extends Authenticator {
        public PasswordAuthentication getPasswordAuthentication() {
            System.out.println("Feeding username and password for " + getRequestingScheme());
            return (new PasswordAuthentication(user, pass.toCharArray()));
        }
    }

使用 JAX-WS 调用 Web 服务:

Authenticator.setDefault(new MyAuthenticator());

com.nm.Lists service = new com.nm.Lists();

com.nm.ListsSoap port = service.getListsSoap12();

String pageUrl = "http://xxxxxxx/testPushFile.txt";
String comment = "no comment";
String checkinType = "1";

boolean result = port.checkInFile(pageUrl, comment, checkinType);

我仍然收到错误:

Exception in thread "main" javax.xml.ws.WebServiceException: java.io.IOException: Authentication failure
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage(HttpClientTransport.java:201)

因为它不起作用我试过:

  • 设置没有域的用户

  • 将域设置为系统属性:System.setProperty("http.auth.ntlm.domain", "XXXXXXXX");

  • 验证“老式方式”:

      
    ((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, user);
    ((BindingProvider) port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, pass);

任何想法认证有什么问题?

谢谢

4

1 回答 1

1

我回来提供解决方案。这是我为使 Web 服务身份验证工作所做的工作:

  • 我在 IIS 管理器中为我的 SharePoint 站点启用了基本身份验证,
  • 我使用了在 Windows 域中注册的用户凭据
于 2011-11-30T16:15:58.267 回答