使用所需的网络适配器拨打网络服务
问题描述:
有没有办法强制Apache CXF使用特定的网络适配器?使用所需的网络适配器拨打网络服务
我已经使用Jax-WS生成了soap web服务代理类,并使用下面的代码调用服务。我只想通过使用无线网络适配器调用服务而不禁用有线以太网连接。在系统
FooService oServ = new FooWSService();
FooWS oWs = oServ.getFooWSPort();
String endpointURL = "https://fooservice/serviceWSPort";
BindingProvider bindingProvider = (BindingProvider) oWs;
Map<String, Object> requestContext = bindingProvider.getRequestContext();
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(oWs);
org.apache.cxf.endpoint.Endpoint cxfEndpoint = client.getEndpoint();
String result = oWS.TestMethod();
Avaible网络适配器使用
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
结果:
Display name: Realtek PCIe GBE Family Controller
Name: eth4
InetAddress: /fe80:0:0:0:914b:ee4a:58b7:e5b3%12
InetAddress: /10.10.10.227
Display name: 1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter
Name: net4
InetAddress: /fe80:0:0:0:513:7a5a:d3ab:9278%13
InetAddress: /10.10.11.35
答
不能确定,羯羊它可以配置Web服务客户端绑定请求到特定的接口,但我认为你可以轻松地使用主机操作系统IP路由配置。对于windows,你可以不喜欢它:
route ADD 1.1.1.1 MASK 255.255.255.255 10.10.11.35
哪里1.1.1.1
是IP地址,如果FooService接口和10.10.11.35是网络接口的地址,至极将被用作网关。如果您需要-p
标志,您可以使此路线永久。对于Linux,可以用类似的方法完成。