2015-10-13 112 views
2

有没有办法强制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 

回答

1

不能确定,羯羊它可以配置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,可以用类似的方法完成。