Hello,
I have a requirement where I need to detect proxy of the system on which web app is deployed and use detected proxy and its port .
I have found java.net.useSystemProxies , through which we can achieve this. I have used this property and below code
in standalone java program with main method. On running the standalone java program, the proxy and its port gets detected as expected.Code:System.setProperty("java.net.useSystemProxies") Proxy proxy = (Proxy) ProxySelector.getDefault().select(new URI("http://www.yahoo.com/")).iterator().next(); InetSocketAddress addr = (InetSocketAddress) proxy.address(); proxyHost = addr.getHostName(); proxyPort = addr.getPort();
However when I use the same piece of code in junit and in web app , it doesnt work, it doesnt detect the proxy . It displays as DIRECT connection . Btw I am using spring .
To set this property for junit and spring container , I pass it using below code
When I sysout in junit / in web app , it properly reflects the value which is set in context.xml as shown above .But it doesnt detect the proxy and its port. Its detects as DIRECT connection , where in it should get the proxy existing on system.Code:<bean id="systemPrereqs" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetObject" value="#{@systemProperties}" /> <property name="targetMethod" value="putAll" /> <property name="arguments"> <!-- The new Properties --> <util:properties> <prop key="java.net.useSystemProxies">true</prop> </util:properties> </property> </bean>
I am struggling very hard to get it . If any one could help me achieving or way to troubleshoot it , will be very helpful.
thanks in advance


Reply With Quote