Page 1 of 1

Smart Client Startup

PostPosted: Fri Aug 24, 2018 4:25 pm
by Gordon McLean
Hi
I am having issues starting a smart client on both local and remote installations. The remote server is a Tomcat Linux machine and is correctly serving the application as a web client solution, however there is specific functionality built into the smart client that our customer needs. The error message I am getting is and is continually looping with a Connection Timed Out Error.

I am not familiar with smart client and have not used it for many years to any tips on resolving this would be very much appreciated

Regards
Gordon





CacheEntry[https://tomcat.extrastaff.com:8443/TPNAdminV1_2/servoy-client/tpn3.jnlp]: updateAvailable=true,lastModified=Fri Aug 24 14:52:14 BST 2018,length=-1
Java Web Start 11.181.2.13 x86_64
Using JRE version 1.8.0_181-b13 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/gordonmclean
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
m: print memory usage
o: trigger logging
p: reload proxy configuration
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
0-5: set trace level to <n>
----------------------------------------------------
java.net.ConnectException: Operation timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at com.sebster.tunnel.impl.nb.createSocket(nb.java:8)
at com.sebster.tunnel.impl.gc.connect(gc.java:5)
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:2)
at com.sebster.tunnel.impl.bb.connect(bb.java:3)
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:2)
at com.sebster.tunnel.impl.le.<init>(le.java:11)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:11)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:10)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:325)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:323)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:277)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.<init>(ClientTunnelRMISocketFactoryFactory.java:265)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.servoy.j2db.smart.J2DBClient.initRMISocketFactory(J2DBClient.java:850)
at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:786)
at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:698)
at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:722)
at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:685)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
java.net.ConnectException: Operation timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at com.sebster.tunnel.impl.nb.createSocket(nb.java:8)
at com.sebster.tunnel.impl.gc.connect(gc.java:5)
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:2)
at com.sebster.tunnel.impl.bb.connect(bb.java:3)
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:2)
at com.sebster.tunnel.impl.le.<init>(le.java:11)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:11)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:10)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:325)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:323)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:277)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:289)
at com.servoy.j2db.smart.J2DBClient.connectApplicationServer(J2DBClient.java:1906)
at com.servoy.j2db.smart.J2DBClient.startApplicationServerConnection(J2DBClient.java:1887)
at com.servoy.j2db.ClientState.applicationServerInit(ClientState.java:316)
at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:792)
at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:698)
at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:722)
at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:685)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
Aug 24, 2018 3:20:02 PM com.servoy.j2db.util.Debug error
SEVERE: Error getting the service com.servoy.j2db.server.shared.IApplicationServer from host tomcat.extrastaff.com:1102
java.lang.NullPointerException
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getRemoteClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:290)
at com.servoy.j2db.smart.J2DBClient.connectApplicationServer(J2DBClient.java:1906)
at com.servoy.j2db.smart.J2DBClient.startApplicationServerConnection(J2DBClient.java:1887)
at com.servoy.j2db.ClientState.applicationServerInit(ClientState.java:316)
at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:792)
at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:698)
at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:722)
at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:685)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)

java.net.ConnectException: Operation timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at com.sebster.tunnel.impl.nb.createSocket(nb.java:8)
at com.sebster.tunnel.impl.gc.connect(gc.java:5)
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:2)
at com.sebster.tunnel.impl.bb.connect(bb.java:3)
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:2)
at com.sebster.tunnel.impl.le.<init>(le.java:11)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:11)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:10)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:325)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:323)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:277)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:300)
at com.servoy.j2db.smart.J2DBClient.exportObject(J2DBClient.java:3404)
at com.servoy.j2db.smart.J2DBClient.bindUserClient(J2DBClient.java:3376)
at com.servoy.j2db.ClientState.applicationServerInit(ClientState.java:317)
at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:792)
at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:698)
at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:722)
at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:685)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
java.net.ConnectException: Operation timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at com.sebster.tunnel.impl.nb.createSocket(nb.java:8)
at com.sebster.tunnel.impl.gc.connect(gc.java:5)
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:2)
at com.sebster.tunnel.impl.bb.connect(bb.java:3)
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:2)
at com.sebster.tunnel.impl.le.<init>(le.java:11)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:2)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:11)
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.<init>(ClientMultiplexedRmiSocketFactoryProvider.java:10)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:325)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.<init>(ClientTunnelRMISocketFactoryFactory.java:323)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:277)
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.getClientSocketFactory(ClientTunnelRMISocketFactoryFactory.java:300)
at com.servoy.j2db.smart.J2DBClient.exportObject(J2DBClient.java:3404)
at com.servoy.j2db.smart.J2DBClient.bindUserClient(J2DBClient.java:3376)
at com.servoy.j2db.ClientState.applicationServerInit(ClientState.java:317)
at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:792)
at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:698)
at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:722)
at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:685)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)

Re: Smart Client Startup

PostPosted: Mon Aug 27, 2018 7:16 pm
by sean
Hi Gordon, It looks like the client doesn't really "see" the service.
What are your configurations for SocketFactory.tunnelConnectionMode ?
What are your firewall settings ?
It could be that you run on plain socket but simply don't have access to RMI port (1099)
So the jnlp file downloads ok (from http port) but cannot connect when it switches over to socket.

Re: Smart Client Startup

PostPosted: Tue Sep 18, 2018 2:21 pm
by Gordon McLean
Hi Sean
Weird I am sure I replied to this post, none the less clearly not :(

SocketFactory.tunnelConnectionMode: http&socket

Firewall has 1099 on RDP and TCP open along with 20,21,22,25,80,443,1099,2049,3000,3001,3306,8009,8080,8443,8888,1099 (UDP)

The situation is that the error is the same and clearly we are not able to connect to the relevant port

Best
Gordon

Re: Smart Client Startup

PostPosted: Tue Sep 18, 2018 4:59 pm
by Gordon McLean
To answer my own post and thanks to Rafi and Sean the cause of this problem was the RMI port. The solution was installed on a Tomcat server using a war installation. The server had multiple installations the consequence of which is the RMI port 1099 was already being used. The escalation of the port from 1099 to 1100 and 1101 by Servoy was not working due to the latter ports being blocked on the firewall. Therefore the solution to this is each WAR install on Tomcat needs its own RMI port open on the server

install1 = 1099
install2 = 1100
etc

Best
Gordon