我开发了一个通过代理访问SOAP-Server的代码,根据这里的描述,我可以设置一个全局代理。虽然我的问题似乎天真,但我没有找到任何指南如何设置用户名和密码为这个代理设置在我的java代码?
你可以在运行时获取系统的属性,并设置你需要配置代理的所有内容…
<标题>例子:System.getProperties().put("http.proxyHost", "myProxyURL");
System.getProperties().put("http.proxyPort", "myProxyPort");
System.getProperties().put("http.proxyUser", "myUserName");
System.getProperties().put("http.proxyPassword", "myPassword");
标题>
几天后,我找到了我的解决方案,我试着在这里解释它。
- 了解您所编写的SOAP客户端服务的类型非常重要。在我的例子中,我使用CXF 3.1.7来生成Java代码。更明确地说,我有一个WSDL文件,并使用上述版本通过maven中的wsdl2java插件生成代码。
-
在WebService级别中,可以通过以下代码来进入代理设置
private void setProxySetting(EventPortType port) { try{ Client client = ClientProxy.getClient(port); HTTPConduit http = (HTTPConduit) client.getConduit(); http.getClient().setProxyServer("***host***"); http.getClient().setProxyServerPort(80); http.getProxyAuthorization().setUserName("***username***"); http.getProxyAuthorization().setPassword("***password***"); }catch (Exception e) { logger.error("Please Enter your proxy setting in MyClass class", e); } }
端口来自服务级别,我得到如下
EventService es = new EventService(); EventPortType port = es.getEventPort(); setProxySetting();