使用Java使用NTML身份验证在Navision Web服务上调用方法

时间:2019-01-16 13:02:11

标签: java wsdl soap-client navision

我已经在Netbeans上创建了一个SOAP Web服务客户端。该Web服务在具有NTML身份验证的Navision上公开。在类生成期间,登录弹出窗口会选择所需的凭据并将其用于身份验证。 问题是一旦生成了类并且我尝试调用任何方法;

driver = webdriver.Remote(command_executor='chrome', desired_capabilities=cap)

我例外。

    ServicePort webservice_port = new WService().getServicePort();
    webservice_port.retrieveData();

这是NTLM身份验证问题吗,还是还有另一种方式来传递凭据?

1 个答案:

答案 0 :(得分:0)

找到了可行的解决方案。使用Web服务端口向客户端注入身份验证机制。

        Port webservice_port = new Wservice().getServicePort();
        Client client = ClientProxy.getClient(webservice_port);
        HTTPConduit conduit = (HTTPConduit) client.getConduit();
        AuthorizationPolicy authorization = conduit.getAuthorization();
        authorization.setUserName(username);
        authorization.setPassword(password);
        conduit.getClient().setAllowChunking(false);
        conduit.getClient().setAutoRedirect(true);
        webservice_port.callWebMethod();