我想从java客户端代码调用基于.NET的web服务。我使用wsimport工具生成了JAX-WS存根。
这是在.NET客户端中创建凭据的方式 -
String nova = old.replace("\\n", System.getProperty("line.separator"));
我们如何在Java Client中类似地执行此操作?我搜索了很多,发现一些帖子建议进行NTLM身份验证,但我不知道该怎么做。
答案 0 :(得分:1)
JAX-WS不支持NTLM身份验证,但您仍有几个选择
备选方案1: 创建自己的身份验证器并将其设置为默认值,它将用于所有HTTP通信。 仅当通信是server2server时才使用此备选方案,因为使用多个多用户帐户不是最佳选择。 您可以在此处查看如何实施该代码的代码:http://docs.oracle.com/javase/7/docs/technotes/guides/net/http-auth.html
备选方案2: 另一种方法是使用Axis2,它使用场景后面的HTTPClient。它将选择适合您的方案的最佳身份验证方法。 axis2 client NTLM authentication
注意: Axis2在某些版本的NTLM上存在问题,有些人建议您迁移到CFX CXF SOAP Client with NTLM to SharePoint
这些替代方案要求您在代码中包含新库,我希望它有所帮助