【问题标题】:HttpTransportProperties.Authenticator is not found in Axis2在 Axis2 中找不到 HttpTransportProperties.Authenticator
【发布时间】:2017-07-18 15:12:35
【问题描述】:

刚刚使用 Apache Axis 2 从 WSDL 生成 Java 代码。该服务受到基本身份验证的保护。当我尝试创建身份验证对象以设置用户名和密码时,在库中找不到类 (HttpTransportProperties.Authenticator)。

如何为 Apache Axis2 生成的客户端代码设置基本身份验证?

这是设置基本身份验证参数的旧方法

HttpTransportProperties.Authenticator basicAuth = new HttpTransportProperties.Authenticator();
basicAuth.setUsername("username");
basicAuth.setPassword("password");
basicAuth.setPreemptiveAuthentication(true);

final Options clientOptions = stub._getServiceClient().getOptions();
clientOptions.setProperty(HTTPConstants.AUTHENTICATE, basicAuth);
stub._getServiceClient().setOptions(clientOptions);

【问题讨论】:

    标签: java web-services axis2 axis basic-authentication


    【解决方案1】:

    我遇到了同样的问题!

    解决方案:使用HttpTransportPropertiesImpl 而不是HttpTransportProperties

    【讨论】:

    • 该类在较新版本中不存在,我在文档中找不到任何内容
    【解决方案2】:
        org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[1].getName());
        _operationClient.getOptions()
                .setAction("http://asdf/checkOutRequest");
    
        HttpTransportPropertiesImpl.Authenticator basicAuth = new HttpTransportPropertiesImpl.Authenticator();
        basicAuth.setUsername("tomcat");
        basicAuth.setPassword("tomcat");
        basicAuth.setPreemptiveAuthentication(true);
    
        final Options clientOptions = _operationClient.getOptions();
        clientOptions.setProperty(HTTPConstants.AUTHENTICATE, basicAuth);
        _operationClient.setOptions(clientOptions);
    

    对于任何需要 uwesch 非常有用的答案的更明确示例的人。

    【讨论】:

      猜你喜欢
      • 2012-09-19
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2013-04-18
      • 2021-06-20
      相关资源
      最近更新 更多