Smart Client through HTTP proxy

Questions, answers, tips and ideas on Servoy Client

Smart Client through HTTP proxy

Postby lelepar » Tue Aug 04, 2009 12:16 pm

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
lelepar
 
Posts: 5
Joined: Wed Aug 06, 2008 7:44 pm

Re: Smart Client through HTTP proxy

Postby sebster » Tue Oct 13, 2009 1:13 pm

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:

Code: Select all
    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).
Sebastiaan van Erk
Servoy
sebster
 
Posts: 251
Joined: Thu Apr 24, 2003 10:03 am
Location: Utrecht, The Netherlands

Re: Smart Client through HTTP proxy

Postby dpearce » Mon Jun 28, 2010 1:07 am

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:
Code: Select all
  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
dpearce
 
Posts: 469
Joined: Sun Dec 03, 2006 11:53 am

Re: Smart Client through HTTP proxy

Postby sebster » Mon Jun 28, 2010 6:21 am

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
sebster
 
Posts: 251
Joined: Thu Apr 24, 2003 10:03 am
Location: Utrecht, The Netherlands

Re: Smart Client through HTTP proxy

Postby dpearce » Mon Jun 28, 2010 8:57 am

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?

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


David
dpearce
 
Posts: 469
Joined: Sun Dec 03, 2006 11:53 am

Re: Smart Client through HTTP proxy

Postby sebster » Mon Jun 28, 2010 10:34 pm

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:
Code: Select all
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" connectionTimeout="60000" maxThreads="400" />


You can tweak the parameters to suit your needs, see also:
http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html

Regards,
Sebastiaan
Sebastiaan van Erk
Servoy
sebster
 
Posts: 251
Joined: Thu Apr 24, 2003 10:03 am
Location: Utrecht, The Netherlands

Re: Smart Client through HTTP proxy

Postby dpearce » Sat Jul 03, 2010 9:38 pm

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:

Code: Select all
<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
dpearce
 
Posts: 469
Joined: Sun Dec 03, 2006 11:53 am

Re: Smart Client through HTTP proxy

Postby sebster » Sat Jul 03, 2010 11:23 pm

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?
Sebastiaan van Erk
Servoy
sebster
 
Posts: 251
Joined: Thu Apr 24, 2003 10:03 am
Location: Utrecht, The Netherlands

Re: Smart Client through HTTP proxy

Postby sebster » Sun Jul 04, 2010 12:06 am

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:

Code: Select all
servoy.jnlpCodebaseOverride=http://www.drcoop.co.uk


Then you should see that the clients connect to that url instead of the 8046 one.
Sebastiaan van Erk
Servoy
sebster
 
Posts: 251
Joined: Thu Apr 24, 2003 10:03 am
Location: Utrecht, The Netherlands

Re: Smart Client through HTTP proxy

Postby dpearce » Sun Jul 04, 2010 12:09 am

OK,

is that in the servoy properties file or in another one of the config files?
dpearce
 
Posts: 469
Joined: Sun Dec 03, 2006 11:53 am

Re: Smart Client through HTTP proxy

Postby dpearce » Sun Jul 04, 2010 12:13 am

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

Code: Select all
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
Last edited by dpearce on Sun Jul 04, 2010 12:44 am, edited 1 time in total.
dpearce
 
Posts: 469
Joined: Sun Dec 03, 2006 11:53 am

Re: Smart Client through HTTP proxy

Postby sebster » Sun Jul 04, 2010 12:37 am

Depends on the version of servoy. If it's not in the network pages, then just put it in the servoy.properties.
Sebastiaan van Erk
Servoy
sebster
 
Posts: 251
Joined: Thu Apr 24, 2003 10:03 am
Location: Utrecht, The Netherlands

Re: Smart Client through HTTP proxy

Postby dpearce » Sun Jul 04, 2010 12:46 am

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
dpearce
 
Posts: 469
Joined: Sun Dec 03, 2006 11:53 am

Re: Smart Client through HTTP proxy

Postby sebster » Sun Jul 04, 2010 12:55 am

You can try this in servoy.properties:

Code: Select all
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. :)
Sebastiaan van Erk
Servoy
sebster
 
Posts: 251
Joined: Thu Apr 24, 2003 10:03 am
Location: Utrecht, The Netherlands

Re: Smart Client through HTTP proxy

Postby dpearce » Sun Jul 04, 2010 2:25 am

Thanks Seb,

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

Code: Select all
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
dpearce
 
Posts: 469
Joined: Sun Dec 03, 2006 11:53 am

Next

Return to Servoy Client

Who is online

Users browsing this forum: No registered users and 12 guests

cron