[英]java client request to web-service(c#) with username and password
I want use apache cxf make a client(java)to request webservice. 我想使用apache cxf使客户端(java)请求Web服务。
webservice: 网络服务:
https://extenavigator.ukho.gov.uk/serviceB2B/submitUKHOOrdering.svc https://extenavigator.ukho.gov.uk/ServiceB2B/SubmitUKHOOrdering.svc?singleWsdl
https://extenavigator.ukho.gov.uk/serviceB2B/submitUKHOOrdering.svc https://extenavigator.ukho.gov.uk/ServiceB2B/SubmitUKHOOrdering.svc?singleWsdl
I use wsdl2java generate java code , 我用wsdl2java生成java代码,
it is not working:
它不起作用:
JaxWsProxyFactoryBean proxyFactory = new JaxWsProxyFactoryBean();
proxyFactory.setServiceClass(IOrderingService.class);
proxyFactory.setAddress("https://extenavigator.ukho.gov.uk/serviceB2B/submitUKHOOrdering.svc");
proxyFactory.setUsername(USERNAME);
proxyFactory.setPassword(PASSWORD);
proxyFactory.setBindingId("http://www.w3.org/2003/05/soap/bindings/HTTP/");
IOrderingService client = (IOrderingService) proxyFactory.create();
System.out.println("submit order...");
SubmitOrderResponse submitOrderResponse = client.submitOrder(WebService.makeSubmitOrderRequest());
System.out.println("submit order response...");
Integer orderId = submitOrderResponse.getOrderId();
System.out.println("orderId:" + orderId);
submitOrderResponse.getOrderStatus().getValue().getOrderItemStatus().forEach(item -> {
System.out.println("item.getProduct:" + item.getProduct());
System.out.println("item.getStatus:" + item.getStatus());
});
System.out.println("AccountId:" + submitOrderResponse.getAccountId());
throw 扔
java.net.SocketTimeoutException: Read timed out
java.net.SocketTimeoutException:读取超时
I try to make ac# client to request the service, 我尝试让ac#客户端请求服务,
it is working!
这是工作!
uk.OrderingServiceClient client = new uk.OrderingServiceClient();
if (client.ClientCredentials != null)
{
client.ClientCredentials.UserName.UserName = "XXXXXX";
client.ClientCredentials.UserName.Password = "XXXXXX";
}
client.Endpoint.Address = new EndpointAddress("https://extenavigator.ukho.gov.uk/serviceB2B/submitUKHOOrdering.svc");
var response = client.SubmitOrder(new SubmitOrderRequest()
{
Order = new Order()
{
DistId = 2960,
LicenceId = 45039,
DeliveryMethod = DeliveryMethod.Both,
OrderItems = new OrderItem[]{
new OrderItem()
{
ProductId = "AR201130",
ProductPeriod = 9,
ProductType = ProductType.AVCSCharts
}
}
},
RequestId = Guid.NewGuid().ToString()
});
Any solution (java client)? 任何解决方案(java客户端)?
this code is working : 此代码有效:
OrderingService service = new OrderingService();
IOrderingService port = service.getWSHttpBindingIOrderingService();
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put("ws-security.username", USERNAME);
bp.getRequestContext().put("ws-security.password", PASSWORD);
System.out.println("submit order...");
SubmitOrderResponse submitOrderResponse = port.submitOrder(WebService.makeSubmitOrderRequest());
System.out.println("submit order response...");
Integer orderId = submitOrderResponse.getOrderId();
System.out.println("orderId:" + orderId);
submitOrderResponse.getOrderStatus().getValue().getOrderItemStatus().forEach(item -> {
System.out.println("item.getProduct:" + item.getProduct());
System.out.println("item.getStatus:" + item.getStatus());
});
System.out.println("AccountId:" + submitOrderResponse.getAccountId());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.