Для WebSphere Application Server 8.5.5 JAX-WS перевірте два навколишні засоби керування, перш ніж покладатися на адресу в контексті запиту клієнта. Властивість IBM на рівні JVM com.ibm.ws.websvcs.transport.enableProxyTunnel типово має значення false; адреса для окремого клієнта не вмикає тунелювання. Значення HTTP-транспорту набору політик також перекривають програмні значення, а вони перекривають системні властивості JVM.

Для вибраного наявного порту IBM документує це налаштування для окремого клієнта перед викликом:

import javax.xml.ws.BindingProvider;

BindingProvider binding = (BindingProvider) servicePort;
binding.getRequestContext().put("https.proxyHost", "proxy.example");
binding.getRequestContext().put("https.proxyPort", "8080");

Ключі HTTPS діють для кінцевих точок HTTPS; для HTTP використовуйте відповідні ключі IBM HTTP. Дозволена публічна кінцева точка SOAP може використовувати HTTP-адресу зі списку HTTP-проксі лише після того, як застосовна політика та засоби керування тунелем це дозволять і на цих рівнях не налаштовано жодного облікового запису проксі. Автентифікація проксі має окремі властивості HTTP/HTTPS proxyUser і proxyPassword, незалежні від облікових даних служби SOAP.

Це розширення WebSphere. Карта BindingProvider у Metro, CXF або іншій реалізації не робить ці рядки переносними.

Тримайте різні одночасні маршрути на належно налаштованих клієнтських об'єктах, а не переписуйте спільний контекст порту під час викликів. Так адреса обмежується фактичним клієнтом, а навколишні засоби керування JVM не вважаються локальними для клієнта.

Схожі статті