I probably was not clear about the ProxySelectorRoutePlanner, I took
that code out.
With ProxySelectorRoutePlanner and
System.setProperty("java.net.useSystemProxies",
"true") the routing code looks right based on the trace:
2011/01/11 10:58:34:296 EST [DEBUG] SingleClientConnManager - Get
connection for route
HttpRoute[{}->http://192.168.1.144:8000->http://www2.mytest.com]
But the java tcp code uses ProxySelector to select a proxy so it ends
up trying to proxy->proxy->destination.
Without ProxySelectorRoutePlanner I get the following stack trace when
configured to use proxy:
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:423)
<-----NOTE it is in the socks code
java.net.Socket.connect(Socket.java:518)
org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
<-----NOTE connect
org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:133)
org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
Note it is in SocksSocketImpl waiting for a response from the socks
server, will not pull out.
Not configured to use proxy results in this:
java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:340)
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
<-----NOTE it is in the socks code
java.net.Socket.connect(Socket.java:518)
org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
<-----NOTE connect same place as above
org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:133)
org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
This is after the connection is made and the request will work ok
This seems to be a problem with Java. I don't understand why other
things work through the proxy as they are supposed to though.
Kind of in a hurry, let me know what is not clear....
Thanks.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]