Hi, I wonder if anyone can help with this problem. We have a Web Service impemented as a .Net application running on IIS 6.0. The service is protected by NTLM authentication. I would like to test it using an Axis2 (Release 1.5) client. I can run the WSDL2Java tool to generate the client stub classes, and have written a client application. However, each time, I run the application, I get a 401 error as follows:
[java] [INFO] Unable to sendViaPost to url[http://server/WBService] ( I have changed the URL) [java] org.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized [java] at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:295) ... I have tried to follow the instructions regarding setting up NTLM authentication in the client application, but as far as I can tell from the IIS log, the authentication information is not getting passed to the server. Here's my client code: WBServiceStub wbServiceStub = new WBServiceStub(); Options options = wbServiceStub._getServiceClient().getOptions(); HttpTransportProperties.Authenticator authenticator = new HttpTransportProperties.Authenticator(); List<String> auth = new ArrayList<String>(); auth.add(authenticator.NTLM); authenticator.setAuthSchemes(auth); authenticator.setUsername("username"); // Just username, no server name or backslash authenticator.setPassword("password"); authenticator.setHost("clientMachine"); // not sure if this correct authenticator.setDomain("serverName"); // FQDN for server machine authenticator.setPort(80); // Is this necessary? authenticator.setRealm("serverName"); // FQDN for server machine? authenticator.setPreemptiveAuthentication(true); // Is this necessary? options.setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, authenticator); WBServiceStub.ServiceResponse serviceResponse = new WBServiceStub.serviceMethods(); The machine is not part of a domain, so I am providing a local username and password. Any help would be appreciated! Thanks, Martin
