【发布时间】:2017-05-12 19:14:12
【问题描述】:
我正在尝试为此 Web 服务编写一个 java 客户端
http://api.exigo.com/3.0/ExigoApi.asmx?WSDL
但无法设置其身份验证标头 在 .Net 环境中有一个属性将 ApiAuthentication 对象设置为 API 像这样的对象
//Set Authentication Header
ExigoApi api = new ExigoApi();
ApiAuthentication auth = new ApiAuthentication();
auth.Company = "company";
auth.LoginName = "name";
auth.Password = "password";
api.ApiAuthenticationValue = auth;
//Create request object
GetCustomersRequest req = new GetCustomersRequest();
//Specify which customer(s) we are getting
req.CustomerID = 1;
//Submit the request
GetCustomersResponse res = api.GetCustomers(req);
Console.WriteLine(res.Customers[0].CustomerID);
但是在java中我找不到这个方法
api.ApiAuthenticationValue = auth;
这是我用java编写的代码,但抛出异常
import com.exigo.api.*;
public class ExigoDemoService {
public static void main(String[] args) {
//Set Authentication Header
ExigoApi api = new ExigoApi();
ApiAuthentication auth = new ApiAuthentication();
auth.setCompany("company");
auth.setLoginName("name");
auth.setPassword("password");
//Create request object
GetCustomersRequest req = new GetCustomersRequest();
//Specify which customer(s) we are getting
req.setCustomerID(1);
//Submit the request
GetCustomersResponse res = api.getExigoApiSoap().getCustomers(req);
}
private static CreateCustomerResponse createCustomer(com.exigo.api.CreateCustomerRequest createCustomerRequest) {
com.exigo.api.ExigoApi service = new com.exigo.api.ExigoApi();
com.exigo.api.ExigoApiSoap port = service.getExigoApiSoap();
return port.createCustomer(createCustomerRequest);
}
private static GetCustomersResponse getCustomers(com.exigo.api.GetCustomersRequest getCustomersRequest) {
com.exigo.api.ExigoApi service = new com.exigo.api.ExigoApi();
com.exigo.api.ExigoApiSoap port = service.getExigoApiSoap();
return port.getCustomers(getCustomersRequest);
}
}
抛出的异常是
Exception in thread "main" com.sun.xml.internal.ws.fault.ServerSOAPFaultException: Client received SOAP Fault from server: Authentication header missing!
Unable to Authenticate!
【问题讨论】:
-
有人能帮我吗?请我真的被困在这里
标签: java web-services soap wsdl