I need to apply all proxy system settings in my Java program.
It needs to happen in certain conditions so I can't use the JVM argument method (-D).
I'm using the accepted answer from Setting JVM/JRE to use Windows Proxy Automatically
and it works for HTTP, HTTPS and FTP.
But it simply won't work for SOCKS.
How can I detect SOCKS settings from the OS?
Alternatively, how can I can apply all OS proxy settings blindly?
Found it:
The protocol label for HTTP is "HTTP".
HTTPS: "HTTPS"
FTP: "FTP"
SOCKS? "SOCKET"
My app is under development running in an emulator and I need to route traffic through Fiddler now and then to inspect and test.
How do I make the HttpURLConnection class to simply follow the PC's proxy settings instead of having to set a proxy in code?
It is easier to press F12 to turn Fiddler on/off than to add code and use a config file.
It is possible to configure a proxy in the emulator:
My java desktop application uses httpclient as REST client. The communication (simple GET operations) is very slow. I think, the operating system (Windows 7) proxy settings are used, although the particular destination IP-address is excluded from the proxy settings. Somewhere must be the bottleneck.
Is there a way to check if httpclient uses a proxy? If it so, how can I turn the proxy off (in httpclient).
I already have tried to work with -Djava.net.useSystemProxies=false and so on; no effect.
You can use RequestBin to inspect http requests. Looking at the request you should be able to determine whether or not a proxy is being used.
I have been having issues with running a Glassfish v2.1.1 instance on my local machine from within the office, where we have a proxy server for outgoing connections. My initial workaround has been to work from home.
I am calling a SOAP service on a HTTPS server outside of the company. As Glassfish is not going via the company's proxy server, I get the following error when trying to initialise my SOAP clients:
javax.xml.ws.WebServiceException: Failed to access the WSDL at: https://www.hostname.com...
and
Caused by: java.net.UnknownHostException: www.hostname.com
I have proxy environment variables set on my command line, as well as my system proxy settings all working correctly so that I can get to the WSDL with the browser. How should I configure Glassfish?
I had a lot of trouble finding an answer to this, as the topic isn't covered in a lot of detail on the web. One link told me how to configure the HTTP proxy, but mentioned nothing about HTTPS, so it took me a while to figure it out.
Open up the admin console on your Glassfish server and go to:
Application Server -> JVM Settings -> JVM Options. Click "Add JVM Option" 4 times and enter the following 4 options
-Dhttp.proxyHost=proxyhostname
-Dhttp.proxyPort=8080
-Dhttps.proxyHost=proxyhostname
-Dhttps.proxyPort=8080
Where proxyhostname and the port number are correct for your setup. Then you need to restart the server.
Note that I couldn't find any options for setting up the proxy from a PAC file, nor for proxies which require auth. In this case, you may need to install a local auth proxy handler like Authoxy for Mac OS X, which turns your localhost into a non-auth proxy and masks the authentication request from the central auth proxy.
Also, this link was good for various proxy options to the JVM:
http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html
You have to explicitly set the proxy server. Several options are available depending on the Glassfish version. In general you can set the proxy by either using JVM arguments or the Glassfish Admin console. An intro for GF3 is available here (sorry for only providing a link, but I do not want to repeat all the details here).
Just to make the answer complete, if the proxy requires user name and password, set the following in Glassfish:
-Dhttp.proxyUser=someUserName
-Dhttp.proxyPassword=somePassword
The host cannot be resolved, are you sure you use a hostname resolvable by an internet DNS server or are you using something that can only be resolved from within your network or even worse, a hosts entry local to your machine?
Aside from that, the proxy server might be denying you access to some ports, but this is probably not your problem right now. If the proxy allows access to port 80, try running your Glassfish on port 80 as well if you get any connection timeout errors.
I use an "anonproxy" to bypass network restrictions in some public networks, and somehow eclipse managed to configure itself to use it. Even after I disabled the proxy settings in firefox, eclipse still uses it. When I try to stop the proxy service, eclipse simply pops a message saying the proxy refused connections. How do I remove any proxy settings from eclipse??
If you are speaking about the proxy Eclipse uses to access the web, it's in:
Window -> Preferences -> General -> Network Connections