Java 使用基本身份验证和ssl调用soap ws时出错
当从不同的wsdl调用两个受基本身份验证和ssl保护的远程方法时,我遇到了一个问题 第一个调用是可以的,但是位于其他wsdl上的第二个方法的第二个调用不起作用 当我首先调用第二个方法时,它会工作, 我正在使用cxf生成客户端,这似乎是一个与cxf相关的错误Java 使用基本身份验证和ssl调用soap ws时出错,java,ssl,soap,cxf,basic-authentication,Java,Ssl,Soap,Cxf,Basic Authentication,当从不同的wsdl调用两个受基本身份验证和ssl保护的远程方法时,我遇到了一个问题 第一个调用是可以的,但是位于其他wsdl上的第二个方法的第二个调用不起作用 当我首先调用第二个方法时,它会工作, 我正在使用cxf生成客户端,这似乎是一个与cxf相关的错误 我有相同的跟踪错误,如此处所示嗨,我的问题是通过使用其他方法设置凭据解决的 我使用的是来自java.net的身份验证类 使用一个端点和一个凭据时,此方法是正常的 但是,如果您有多个端点和多个凭证,那么当您尝试调用tow方法时,它将不起作用,因
我有相同的跟踪错误,如此处所示嗨,我的问题是通过使用其他方法设置凭据解决的 我使用的是来自java.net的身份验证类 使用一个端点和一个凭据时,此方法是正常的 但是,如果您有多个端点和多个凭证,那么当您尝试调用tow方法时,它将不起作用,因为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());
}
Hashtable hashmajcompte=new Hashtable();
字符串ENDPOINT_URL_CloudAgence=Util.getSysProp(“address.cloud.agence”);
字符串BASIC_USER_CloudAgence=Util.getSysProp(“login.cloud.agence”);
字符串BASIC_PWD_CloudAgence=Util.getSysProp(“password.cloud.agence”);
JaxWsProxyFactoryBean factoryCloudAgence=新的JaxWsProxyFactoryBean();
factoryCloudAgence.setServiceClass(LdapCloudAgenceWSImpl.class);
setAddress(端点\ URL \云代理);
ldapcloudagencewsiml serviceCloudAgence=(ldapcloudagencewsiml)factoryCloudAgence.create();
BindingProvider bpCloudAgence=(BindingProvider)serviceCloudAgence;
bpCloudAgence.getRequestContext().put(BindingProvider.USERNAME\u属性,BASIC\u USER\u CloudAgence);
bpCloudAgence.getRequestContext().put(BindingProvider.PASSWORD_属性,BASIC_PWD_CloudAgence);
试试{
creerMajCompte(登录名、密码、ncli);
hashmajcompte.put(“成功”、“成功”);
}
捕获(NamingException_Exception e)
{
hashmajcompte.put(“NamingException_Exception”,e.getMessage());
}
提供更多详细信息,如您的客户端代码和您收到的确切错误。