У меня есть файл WSDL, который я превратил в код Java с помощью WSDL2 Java внутри SoapUI, он работает нормально, но теперь мне нужно добавить к нему прокси-сервер моей компании, поэтому каждый SOAP http-запрос будет go через него (но не другие HTTP-запросы).
Я просмотрел несколько потоков, касающихся одной и той же проблемы, и нашел следующие варианты:
в масштабе всей системы прокси, добавив
System.getProperties().put("proxySet", "true");
System.getProperties().put("https.proxyHost", "10.10.10.10");
System.getProperties().put("https.proxyPort", "8080");
, который у меня не работает, так как он влияет на весь jvm.
добавляя следующий код
HelloService hello = new HelloService();
HelloPortType helloPort = cliente.getHelloPort();
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(helloPort);
HTTPConduit http = (HTTPConduit) client.getConduit();
http.getClient().setProxyServer("proxy");
http.getClient().setProxyServerPort(8080);
http.getProxyAuthorization().setUserName("user proxy");
http.getProxyAuthorization().setPassword("password proxy");
, который я не понимаю, как использовать. В моем сгенерированном коде нет следов org. apache .cxf , только javax. xml .ws .
Добавление этого в конфигурацию моего порта:
((BindingProvider) port).getRequestContext().put("http.proxyHost", "proxy@example.com");
((BindingProvider) port).getRequestContext().put("http.proxyPort", "80");
Здесь я использую случайный несуществующий прокси и ожидаю получить ошибку любого вида (тайм-аут, недействительный прокси и т. Д. c.), Но вместо этого проходит без ошибок.