An attempt to access a SharePoint WSDL resource fails if "The server is redirected too many times"

I am trying to connect to a Sharepoint server through Java code. My code works fine with some Sharepoint servers, but it fails when I try to connect to my Comcast account. The ListsSoap and Lists classes were generated from the WSDL Sharepoint using wsimport.

I read this may be caused by not using doman \ username as the Sharepoint username. I tried adding different domains to the username parameter, for example, mycompany.comcastbiz.net\\ me@mycompany.comcastbiz.net , but I got a 401 error for all the domain names I tried.

 BasicHTTPAuthenticator auth = new BasicHTTPAuthenticator(" me@mycompany.comcastbiz.net ", password); Authenticator.setDefault(auth); Lists listsService = new com.microsoft.schemas.sharepoint.soap.Lists(); listsSoap = listsService.getListsSoap12(); 
 import java.net.Authenticator; import java.net.PasswordAuthentication; class BasicHTTPAuthenticator extends Authenticator { private String userName; private String password; public BasicHTTPAuthenticator(String userName, String password) { this.userName = userName; this.password = password; } @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(userName, password.toCharArray()); } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 
 public class Lists extends Service { private final static URL LISTS_WSDL_LOCATION; private final static Logger logger = Logger.getLogger(com.microsoft.schemas.sharepoint.soap.Lists.class.getName()); static { URL url = null; try { URL baseUrl; baseUrl = com.microsoft.schemas.sharepoint.soap.Lists.class.getResource("."); url = new URL(baseUrl, SharepointService.getServerUrl()+"/_vti_bin/Lists.asmx?WSDL"); } catch (MalformedURLException e) { logger.warning("Failed to create URL for the wsdl Location: " + SharepointService.getServerUrl()+"/_vti_bin/Lists.asmx?WSDL"); logger.warning(e.getMessage()); } LISTS_WSDL_LOCATION = url; } public Lists() { super(LISTS_WSDL_LOCATION, new QName("http://schemas.microsoft.com/sharepoint/soap/", "Lists")); } ... } 

Failure:

 javax.xml.ws.WebServiceException: Failed to access the WSDL at: https://www.po1.comcast.net/sites/mycompany//_vti_bin/Lists.asmx?WSDL. Server redirected too many times (20). at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:162) at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:144) at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:265) at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:228) at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:176) at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104) 
+4
source share
2 answers

The correct username for you will be "mycompany.comcastbiz.net \\ me".

0
source

I tried without a domain in front of the user, and I don’t have this error, maybe he doesn’t understand the domain, try using soapUI to test coonection, if everything is ok, this is just a way to connect to the webservice is not good, so ther is another way, REST API for access to sharepoint ...

0
source

All Articles