Smart Client through HTTP proxy

Hi all,

does anybody knows if it possible to let the Smart Client communicate through an HTTP proxy on port 80?
I have one public IP address on which port 80 is used by a Web Server. My idea is to use a Virtual Host and an HTTP proxy to let the Smart Client communicate on the same public IP and port address as the Web Server. The proxy then redirects to an internal IP address on which Servoy server is running.

Thank you
Emanuele

Hi,

Yes this is possible by using the HTTP tunnel.

You could then use apache with mod_proxy to proxy the connections, for example. For apache you’ll need version 2.2 or later and use the following mod_proxy directives:

    ProxyPass /tunnel ajp://yourservoyserver:8010/tunnel flushpackets=on
    ProxyPass / http://yourservoyserver:8080/
    ProxyPassReverse / http://yourservoyserver:8080/

The flushpackets options is only supported for the ajp protocol, I believe, so the tunnel must talk to tomcat via an AJP connector.

You can probably use other proxy software as well, as long as they don’t buffer the data but send it straight though (e.g., Microsoft ISA works fine if you set the tunnel to use chunked mode; squid has also been tested, and works fine too).

Seb,

For those who this goes a little beyond their comfort zone, could you clarify:

  1. I unhash the ajp module in my httpd.conf file. The mod_proxy and http seem to already be loaded along with mod_proxy itself on a mac.

  2. Where do i put the code above:

  ProxyPass /tunnel ajp://yourservoyserver:8010/tunnel flushpackets=on
    ProxyPass / http://yourservoyserver:8080/
    ProxyPassReverse / http://yourservoyserver:8080/

is that in the httpd.conf file as well and what is this doing. is this passing an incoming connection on port 8080 to 8010? what is the correct code for passing data from port 80 onto the port the servoy server is running on? or is that it?

Thanks

David

Hi,

The above code goes in your httpd.conf, either in the “global scope” (for the default host) or in your specific virtual host configuration.

It passes the connection to the AJP protocol connector of Servoy Server, so you could even turn the default HTTP connector (8080) off. The default AJP connector port in Servoy is 8010.

So this is the correct code for passing from your webserver’s configured port to Servoy Server, in the default configuration.

Regards,
Sebastiaan

OK I am starting to get it!

SO if Servoy was normally on say port 8045, it would be this, but where then do i edit the AJP port in the servoy set-up if i am running more than one instance of servoy and want to use different subdomains/virtual confiurations on port 80 say?

ProxyPass /tunnel ajp://yourservoyserver:8010/tunnel flushpackets=on
    ProxyPass / http://yourservoyserver:8045/
    ProxyPassReverse / http://yourservoyserver:8045/

David

Hi,

As far as I can tell, the tomcat in Servoy does not by default have an AJP connector enabled.

To do this, enable it in application_server/server/conf/server.xml.

Below or instead of the HTTP connector add:

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" connectionTimeout="60000" maxThreads="400" />

You can tweak the parameters to suit your needs, see also:

Regards,
Sebastiaan

Hi Seb,

I tried this this weekend, and it worked but i am not sure that i really got it working properly!

I changed my instance of servoy to AJP port 8009, and also left and http port setting at 8046. I restarted it and it worked fine when going directly over 8046.

I changed my webserver settings to:

<VirtualHost 77.240.5.187:80>
        ProxyPass /tunnel ajp://corex.drcoop.co.uk:8009/tunnel flushpackets=on
        ProxyPass / http://corex.drcoop.co.uk:8046/
        ProxyPassReverse / http://corex.drcoop.co.uk:8046/
        ServerName corex.drcoop.co.uk

So now when i went corex.drcoop.co.uk/servoy-client/servoy_client...etc

It ran the smart client fine.

But when looking at the Java log, and the downloading dialogue, it was visibly using port 8046, not port 80

But for my users the idea i think is that they use port 80 so as not to get firewall issues. So is the really using port 80, which is then mapping at my server end to 8046, then down to 80, or is it just mapping port 80 to 8046, but when they use the application they go direct to 8046. If the latter is true then wont i get the same firewall issues as if i just told them to use port 8046 in the first place directly.

Sorry, I find this port business very confusing!!

David

Hi,

Which java log did you look in that you saw that port number? Can you private message me the log?

Are you sure the tunnel is enabled?

Hi,

There is one more configuration tweak you need. Basically, Servoy and WebStart don’t know there is a proxy, so you have to tell them about it. You can do this by setting the servoy.jnlpCodebaseOverride property in the network settings page to the root URL of the servoy server the way the clients have to connect. In your case I think this would be:

servoy.jnlpCodebaseOverride=http://www.drcoop.co.uk

Then you should see that the clients connect to that url instead of the 8046 one.

OK,

is that in the servoy properties file or in another one of the config files?

OK, I have put that in the servoy-properties and it now seems to download the solution as if it were on port 80.

Its seems a little slow to bring up the smart client window and then just hangs at connection to data service for a few minutes, then goes to the start repository with a gray screen. it then just hangs.

This is the log at this point

security: JAVAWS AppPolicy Permission requested for: http://corex.drcoop.co.uk/plugins/google_app.jar
security: Istrusted: http://corex.drcoop.co.uk/servoy-client/plugins/google_app.jar.jnlp true
security: JAVAWS AppPolicy Permission requested for: http://corex.drcoop.co.uk/plugins/converters.jar
security: Istrusted: http://corex.drcoop.co.uk/servoy-client/plugins/converters.jar.jnlp true
security: JAVAWS AppPolicy Permission requested for: http://corex.drcoop.co.uk/plugins/it2be-lib/migcalendarbean.jar
security: Istrusted: http://corex.drcoop.co.uk/servoy-client/plugins/it2be-calendar.jar.jnlp true
java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:130)
	at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:127)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:233)
	at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:210)
	at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:271)
	at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:227)
	at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:229)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:292)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:126)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
	at com.sebster.tunnel.impl.qd.a(qd.java:53)
	at com.sebster.tunnel.http.client.HttpTunnelClient.connect(HttpTunnelClient.java:1)
	at com.sebster.tunnel.http.client.AuthenticatingHttpTunnelClient.connect(AuthenticatingHttpTunnelClient.java:9)
	at com.sebster.tunnel.impl.ed.connect(ed.java:2)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:4)
	at com.sebster.tunnel.impl.fe.<init>(fe.java:16)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:3)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:9)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:232)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:229)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:177)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:189)
	at com.servoy.j2db.J2DBClient.getServerService(Unknown Source)
	at com.servoy.j2db.J2DBClient.goto(Unknown Source)
	at com.servoy.j2db.ClientState.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.a(Unknown Source)
	at com.servoy.j2db.J2DBClient.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1812)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1532)
	at com.sun.javaws.Launcher.run(Launcher.java:135)
	at java.lang.Thread.run(Thread.java:637)
- Error getting the service servoy.IRepository from host corex.drcoop.co.uk:1099
java.lang.NullPointerException
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:190)
	at com.servoy.j2db.J2DBClient.getServerService(Unknown Source)
	at com.servoy.j2db.J2DBClient.goto(Unknown Source)
	at com.servoy.j2db.ClientState.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.a(Unknown Source)
	at com.servoy.j2db.J2DBClient.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1812)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1532)
	at com.sun.javaws.Launcher.run(Launcher.java:135)
	at java.lang.Thread.run(Thread.java:637)
Jul 3, 2010 11:37:21 PM com.sebster.tunnel.impl.qd b
INFO: jcifs library found; NTLM support enabled
Jul 3, 2010 11:37:21 PM com.sebster.tunnel.impl.qd b
INFO: using direct connection
network: Connecting socket://corex.drcoop.co.uk:80 with proxy=DIRECT
java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:130)
	at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:127)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:233)
	at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:210)
	at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:271)
	at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:227)
	at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:229)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:292)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:126)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
	at com.sebster.tunnel.impl.qd.a(qd.java:53)
	at com.sebster.tunnel.http.client.HttpTunnelClient.connect(HttpTunnelClient.java:1)
	at com.sebster.tunnel.http.client.AuthenticatingHttpTunnelClient.connect(AuthenticatingHttpTunnelClient.java:9)
	at com.sebster.tunnel.impl.ed.connect(ed.java:2)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:4)
	at com.sebster.tunnel.impl.fe.<init>(fe.java:16)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:3)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:9)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:232)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:229)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:177)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:189)
	at com.servoy.j2db.J2DBClient.getServerService(Unknown Source)
	at com.servoy.j2db.J2DBClient.e(Unknown Source)
	at com.servoy.j2db.ClientState.new(Unknown Source)
	at com.servoy.j2db.J2DBClient.new(Unknown Source)
	at com.servoy.j2db.J2DBClient.a(Unknown Source)
	at com.servoy.j2db.J2DBClient.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1812)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1532)
	at com.sun.javaws.Launcher.run(Launcher.java:135)
	at java.lang.Thread.run(Thread.java:637)
- Error getting the service servoy.IDataServer from host corex.drcoop.co.uk:1099
java.lang.NullPointerException
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:190)
	at com.servoy.j2db.J2DBClient.getServerService(Unknown Source)
	at com.servoy.j2db.J2DBClient.e(Unknown Source)
	at com.servoy.j2db.ClientState.new(Unknown Source)
	at com.servoy.j2db.J2DBClient.new(Unknown Source)
	at com.servoy.j2db.J2DBClient.a(Unknown Source)
	at com.servoy.j2db.J2DBClient.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1812)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1532)
	at com.sun.javaws.Launcher.run(Launcher.java:135)
	at java.lang.Thread.run(Thread.java:637)
network: Connecting http://corex.drcoop.co.uk/servoy-rmi-portserver with proxy=DIRECT
network: Connecting socket://corex.drcoop.co.uk:80 with proxy=DIRECT
network: Connecting http://corex.drcoop.co.uk/servoy-rmi-portserver with cookie “servoyClient_COREX2=af72a8c8-6996-4151-8d5d-5863c8d7f042”
Jul 3, 2010 11:38:06 PM com.sebster.tunnel.impl.qd b
INFO: jcifs library found; NTLM support enabled
Jul 3, 2010 11:38:06 PM com.sebster.tunnel.impl.qd b
INFO: using direct connection
network: Connecting socket://corex.drcoop.co.uk:80 with proxy=DIRECT
java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:130)
	at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:127)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:233)
	at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:210)
	at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:271)
	at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:227)
	at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:229)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:292)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:126)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
	at com.sebster.tunnel.impl.qd.a(qd.java:53)
	at com.sebster.tunnel.http.client.HttpTunnelClient.connect(HttpTunnelClient.java:1)
	at com.sebster.tunnel.http.client.AuthenticatingHttpTunnelClient.connect(AuthenticatingHttpTunnelClient.java:9)
	at com.sebster.tunnel.impl.ed.connect(ed.java:2)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:4)
	at com.sebster.tunnel.impl.fe.<init>(fe.java:16)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:3)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:9)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:232)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:229)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:177)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:200)
	at com.servoy.j2db.J2DBClient.void(Unknown Source)
	at com.servoy.j2db.ClientState.new(Unknown Source)
	at com.servoy.j2db.J2DBClient.new(Unknown Source)
	at com.servoy.j2db.J2DBClient.a(Unknown Source)
	at com.servoy.j2db.J2DBClient.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1812)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1532)
	at com.sun.javaws.Launcher.run(Launcher.java:135)
	at java.lang.Thread.run(Thread.java:637)
network: Connecting http://corex.drcoop.co.uk/servoy-rmi-portserver with proxy=DIRECT
network: Connecting socket://corex.drcoop.co.uk:80 with proxy=DIRECT
network: Connecting http://corex.drcoop.co.uk/servoy-rmi-portserver with cookie “servoyClient_COREX2=af72a8c8-6996-4151-8d5d-5863c8d7f042”
Jul 3, 2010 11:38:52 PM com.sebster.tunnel.impl.qd b
INFO: jcifs library found; NTLM support enabled
Jul 3, 2010 11:38:52 PM com.sebster.tunnel.impl.qd b
INFO: using direct connection
network: Connecting socket://corex.drcoop.co.uk:80 with proxy=DIRECT
java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:130)
	at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:127)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:233)
	at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:210)
	at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:271)
	at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:227)
	at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:229)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:292)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:126)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
	at com.sebster.tunnel.impl.qd.a(qd.java:53)
	at com.sebster.tunnel.http.client.HttpTunnelClient.connect(HttpTunnelClient.java:1)
	at com.sebster.tunnel.http.client.AuthenticatingHttpTunnelClient.connect(AuthenticatingHttpTunnelClient.java:9)
	at com.sebster.tunnel.impl.ed.connect(ed.java:2)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:4)
	at com.sebster.tunnel.impl.fe.<init>(fe.java:16)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:3)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:9)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:232)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:229)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:177)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:200)
	at com.servoy.j2db.J2DBClient.void(Unknown Source)
	at com.servoy.j2db.ClientState.new(Unknown Source)
	at com.servoy.j2db.J2DBClient.new(Unknown Source)
	at com.servoy.j2db.J2DBClient.a(Unknown Source)
	at com.servoy.j2db.J2DBClient.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1812)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1532)
	at com.sun.javaws.Launcher.run(Launcher.java:135)
	at java.lang.Thread.run(Thread.java:637)
network: Connecting http://corex.drcoop.co.uk/servoy-rmi-portserver with proxy=DIRECT
network: Connecting socket://corex.drcoop.co.uk:80 with proxy=DIRECT
network: Connecting http://corex.drcoop.co.uk/servoy-rmi-portserver with cookie “servoyClient_COREX2=af72a8c8-6996-4151-8d5d-5863c8d7f042”
Jul 3, 2010 11:39:37 PM com.sebster.tunnel.impl.qd b
INFO: jcifs library found; NTLM support enabled
Jul 3, 2010 11:39:37 PM com.sebster.tunnel.impl.qd b
INFO: using direct connection
network: Connecting socket://corex.drcoop.co.uk:80 with proxy=DIRECT

Switching back, perhaps you can interpret?

David

Depends on the version of servoy. If it’s not in the network pages, then just put it in the servoy.properties.

Yes that worked, but then the repository doesnt seem to get going.

I think i am nearly there, but it didnt seem to then find 1099 or something, log is above. it crossed over.

David

You can try this in servoy.properties:

system.property.com.sebster.tunnel.http.client.chunked=true

I’m not sure this is the solution though. It’s kind of late here, so I’ll look at it again tomorrow morning when I’m thinking more clearly. :)

Thanks Seb,

No that didnt do it, get the same type of error.

java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:130)
	at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:127)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:233)
	at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:210)
	at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:271)
	at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:227)
	at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:229)
	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:292)
	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:126)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
	at com.sebster.tunnel.impl.qd.a(qd.java:53)
	at com.sebster.tunnel.http.client.HttpTunnelClient.connect(HttpTunnelClient.java:1)
	at com.sebster.tunnel.http.client.AuthenticatingHttpTunnelClient.connect(AuthenticatingHttpTunnelClient.java:9)
	at com.sebster.tunnel.impl.ed.connect(ed.java:2)
	at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:4)
	at com.sebster.tunnel.impl.fe.<init>(fe.java:16)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:3)
	at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:9)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:232)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:229)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:177)
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:189)
	at com.servoy.j2db.J2DBClient.getServerService(Unknown Source)
	at com.servoy.j2db.J2DBClient.goto(Unknown Source)
	at com.servoy.j2db.ClientState.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.a(Unknown Source)
	at com.servoy.j2db.J2DBClient.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1812)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1532)
	at com.sun.javaws.Launcher.run(Launcher.java:135)
	at java.lang.Thread.run(Thread.java:637)
- Error getting the service servoy.IRepository from host www.drcoop.co.uk:1099
java.lang.NullPointerException
	at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:190)
	at com.servoy.j2db.J2DBClient.getServerService(Unknown Source)
	at com.servoy.j2db.J2DBClient.goto(Unknown Source)
	at com.servoy.j2db.ClientState.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.a(Unknown Source)
	at com.servoy.j2db.J2DBClient.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1812)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1532)
	at com.sun.javaws.Launcher.run(Launcher.java:135)
	at java.lang.Thread.run(Thread.java:637)
Jul 4, 2010 1:19:49 AM com.sebster.tunnel.impl.qd b
INFO: jcifs library found; NTLM support enabled
Jul 4, 2010 1:19:49 AM com.sebster.tunnel.impl.qd b
INFO: using direct connection
network: Connecting socket://www.drcoop.co.uk:80 with proxy=DIRECT

I can wait until your brain is refreshed!!!

David

Just to be sure: do you have any virus scanners running on the client? If so, can you test with it disabled? Web-shield virus scanners have been known to mess with the connection.

No it’s on my mac,

Works fine when I switch back to no proxy on 80

The issue seems to be the proxy, as it works fine over port 80 started as root.

when i put the proxy on it now works, downloads the solution and plugin, but stops at the dtasource and repository. It looks like it can no longer communicate with port 1099, but i havent touched that.

I have used both the above extra line in my properties file.

David