У меня есть веб-приложение весны mvc, которое в основном запускает тест селена на клиентской машине.HttpServletRequest getRemoteAddr() возвращает адрес ipv6, но не смог подключиться к нему
Я создал селен-концентратор и узел в клиентской системе, используя следующие команды -
>java -jar selenium-server-standalone-3.0.1.jar -role hub
>java -Dwebdriver.ie.driver=D:\IEDriver\IEDriverServer.exe -jar selenium-server-standalone-3.0.1.jar -role node -hub http://localhost:4444/grid/register -timeout 20 -browserTimeout 60
моя весна контроллер принимает параметры для URL и тест селена, используя этот параметр в клиентской системе с помощью RemoteWebDriver
вот моя весна контроллер-
@RequestMapping("/remote-app/{policyNumber}")
public @ResponseBody String getOIPA(@PathVariable("policyNumber") String polNumber,HttpServletRequest request) throws MalformedURLException
{
String clientIp = request.getRemoteAddr();
System.out.println("Input policy number : "+polNumber);
System.out.println("Client IP : "+clientIp);
oipaService.openOipaAddressScreenRemote(polNumber,clientIp);
return "hello "+polNumber+" "+clientIp;
}
вот мой метод обслуживания, который проходит испытания -
public void openOipaAddressScreenRemote(String policyNumber,String ip) throws MalformedURLException {
System.out.println("Policy number input : "+policyNumber);
String oipaURL = "https://mydom.com/PASJava_Term";
String userName = "user";
String password = "pwd";
//-------------------
String remoteUrlString = "http://"+ip+":4444/wd/hub";
System.out.println(remoteUrlString);
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new RemoteWebDriver(new URL(remoteUrlString),caps);
//-------------------
driver.get(oipaURL);}
Это дает мне желаемые результаты в клиентских системах моей организации (ПК), который подключается к IPv4-адресу клиента.
Но проблема в том, что когда я использую клиенты Laptop в своей организации, он возвращает мне IPv6, к которому приложение не может подключиться.
Они соединяются именами ноутбуков, например. - lt0. i.e. selenium RemoteWebDriver способен подключиться к http://lt00123:4444/wd/hub
Как определить адрес клиента (ipv4 или имя компьютера) по мере необходимости, если это вообще возможно.
EDIT: после использования решения от here Я решил проблему IPv6. И от here я обнаружил, что мне нужно настроить концентратор на одной машине (желательно на сервере) и узел на клиентской машине с использованием концентратора. теперь моему контроллеру весны не нужно знать адрес клиента. Он уже знает местоположение концентратора.
Возможный дубликат: http://stackoverflow.com/questions/9882357/how-to-set-java-net-preferipv4stack-true-at-runtime –