使用基本身份验证和 ssl 调用 soap ws 时出错

error while calling soap ws with basic authentification and ssl

我在从受基本身份验证和 ssl 保护的不同 wsdl 调用两个远程方法时遇到问题

第一次调用没问题,但是位于另一个 wsdl 上的第二个方法的第二次调用不起作用

当我首先调用第二种方法时,它起作用了, 我正在使用 cxf 生成客户端,这似乎是与 cxf 相关的错误 我有和这里一样的跟踪错误 https://developer.jboss.org/thread/176959?tstart=0

您好,我的问题已通过使用其他方法设置凭据解决 我使用的是来自 java.net 的身份验证 class 当您使用一个端点和一个凭据时,此方法是可以的

但是如果你有多个端点和多个凭据,当你尝试调用拖曳方法时它不起作用,因为 java net 提供了一个一次性设置登录名和密码的静态方法,而你无法将它们更改为同一项目中的另一个调用

我的案例成功的代码是这样的:

Hashtable<String, String>  hashmajcompte = new Hashtable<String, String>();

       String      ENDPOINT_URL_CloudAgence=Util.getSysProp("address.cloud.agence");
       String BASIC_USER_CloudAgence= Util.getSysProp("login.cloud.agence");
       String BASIC_PWD_CloudAgence=Util.getSysProp("password.cloud.agence");

       JaxWsProxyFactoryBean factoryCloudAgence = new JaxWsProxyFactoryBean();


        factoryCloudAgence.setServiceClass(LdapCloudAgenceWSImpl.class);
        factoryCloudAgence.setAddress(ENDPOINT_URL_CloudAgence);
        LdapCloudAgenceWSImpl serviceCloudAgence = (LdapCloudAgenceWSImpl) factoryCloudAgence.create();

        BindingProvider bpCloudAgence = (BindingProvider)serviceCloudAgence;
        bpCloudAgence.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, BASIC_USER_CloudAgence);
        bpCloudAgence.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, BASIC_PWD_CloudAgence);


    try { 
        serviceCloudAgence.creerMajCompte(login, password, ncli); 
        hashmajcompte.put("Succes", "Succes"); 
    }  

    catch (NamingException_Exception e) 
    {  
        hashmajcompte.put("NamingException_Exception", e.getMessage()); 
    }