problems with SSL after 5.0 upgrade

Have been running 4.x server on Windows 2003 for many months with no issues. yersterday i upgraded to 5.0. Upgrade went just fine BUT after the upgrade I find the SSL wont start any more. Can stilll access the applicaiton through webclient on non-SSL (port 8080) but the SSL web pages (8443) arent there. I have changed no configuration items since it was running under 4.x.
Checking various logs I find that the servoy_log.txt file in the application server directory shows:

2009-12-01 09:17:16,421 ERROR [TaskExecuter[0]] com.servoy.j2db.util.Debug - Throwable
java.io.FileNotFoundException: http://www.servoy.com/client/ad/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at com.servoy.j2db.ClientState.getAdInfo(ClientState.java:223)
at com.servoy.j2db.Zfd.run(Zfd.java:5)
at com.servoy.j2db.util.Zed.run(Zed.java:13)
at java.lang.Thread.run(Unknown Source)
2009-12-01 09:17:33,765 ERROR [http-8080-3] com.servoy.j2db.util.Debug - Throwable
java.io.FileNotFoundException: http://www.servoy.com/client/ad/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at com.servoy.j2db.ClientState.getAdInfo(ClientState.java:223)
at com.servoy.j2db.server.headlessclient.Zd.Za(Zd.java:4)
at com.servoy.j2db.ClientState.dataServerInit(ClientState.java:303)
at com.servoy.j2db.server.headlessclient.Zb.(Zb.java:111)
at com.servoy.j2db.server.headlessclient.Zd.(Zd.java:99)
at com.servoy.j2db.server.headlessclient.Zrd.Za(Zrd.java:103)
at com.servoy.j2db.server.headlessclient.SolutionLoader.(SolutionLoader.java:4)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:306)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:321)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:468)
at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)

  • but what file are we talking about? I certainly havent removed any files.
    If I check the .service.log.txt file I can see a diffetrence in the way the service starts before and after the upgrade:

BEFORE the upgrade:
STATUS | wrapper | 2009/11/15 07:23:47 | → Wrapper Started as Service
STATUS | wrapper | 2009/11/15 07:23:48 | Launching a JVM…
INFO | jvm 1 | 2009/11/15 07:24:23 | Wrapper (Version 3.1.2) http://wrapper.tanukisoftware.org
INFO | jvm 1 | 2009/11/15 07:24:23 |
ERROR | wrapper | 2009/11/15 07:24:23 | Startup failed: Timed out waiting for a signal from the JVM.
ERROR | wrapper | 2009/11/15 07:24:23 | JVM did not exit on request, terminated
STATUS | wrapper | 2009/11/15 07:24:29 | Launching a JVM…
INFO | jvm 2 | 2009/11/15 07:24:30 | Wrapper (Version 3.1.2) http://wrapper.tanukisoftware.org
INFO | jvm 2 | 2009/11/15 07:24:30 |
INFO | jvm 2 | 2009/11/15 07:26:49 | Nov 15, 2009 7:26:48 AM org.apache.coyote.http11.Http11NioProtocol init
INFO | jvm 2 | 2009/11/15 07:26:49 | INFO: Initializing Coyote HTTP/1.1 on http-8080
INFO | jvm 2 | 2009/11/15 07:26:49 | Nov 15, 2009 7:26:49 AM org.apache.coyote.http11.Http11NioProtocol init
INFO | jvm 2 | 2009/11/15 07:26:49 | INFO: Initializing Coyote HTTP/1.1 on http-8443
INFO | jvm 2 | 2009/11/15 07:26:49 | Nov 15, 2009 7:26:49 AM org.apache.coyote.http11.Http11Protocol init
INFO | jvm 2 | 2009/11/15 07:26:49 | INFO: Initializing Coyote HTTP/1.1 on http-8009
INFO | jvm 2 | 2009/11/15 07:26:49 | Nov 15, 2009 7:26:49 AM org.apache.catalina.startup.Catalina load
INFO | jvm 2 | 2009/11/15 07:26:49 | INFO: Initialization processed in 9915 ms
INFO | jvm 2 | 2009/11/15 07:26:49 | Nov 15, 2009 7:26:49 AM org.apache.catalina.core.StandardService start
INFO | jvm 2 | 2009/11/15 07:26:49 | INFO: Starting service Catalina
INFO | jvm 2 | 2009/11/15 07:26:49 | Nov 15, 2009 7:26:49 AM org.apache.catalina.core.StandardEngine start
INFO | jvm 2 | 2009/11/15 07:26:49 | INFO: Starting Servlet Engine: Apache Tomcat/6.0-snapshot
INFO | jvm 2 | 2009/11/15 07:26:50 | Nov 15, 2009 7:26:50 AM org.apache.catalina.startup.DigesterFactory register
INFO | jvm 2 | 2009/11/15 07:26:50 | WARNING: Could not get url for /javax/servlet/resources/web-app_2_5.xsd
INFO | jvm 2 | 2009/11/15 07:27:07 | Nov 15, 2009 7:27:07 AM org.apache.coyote.http11.Http11NioProtocol start
INFO | jvm 2 | 2009/11/15 07:27:07 | INFO: Starting Coyote HTTP/1.1 on http-8080
INFO | jvm 2 | 2009/11/15 07:27:07 | Nov 15, 2009 7:27:07 AM org.apache.coyote.http11.Http11NioProtocol start
INFO | jvm 2 | 2009/11/15 07:27:07 | INFO: Starting Coyote HTTP/1.1 on http-8443
INFO | jvm 2 | 2009/11/15 07:27:07 | Nov 15, 2009 7:27:07 AM org.apache.coyote.http11.Http11Protocol start
INFO | jvm 2 | 2009/11/15 07:27:07 | INFO: Starting Coyote HTTP/1.1 on http-8009
INFO | jvm 2 | 2009/11/15 07:27:07 | Nov 15, 2009 7:27:07 AM org.apache.catalina.startup.Catalina start
INFO | jvm 2 | 2009/11/15 07:27:07 | INFO: Server startup in 18557 ms
INFO | jvm 2 | 2009/11/15 10:59:59 | Nov 15, 2009 10:59:59 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO | jvm 2 | 2009/11/15 10:59:59 | INFO: Using a shared selector for servlet write/read

AFTER the upgrade:
STATUS | wrapper | 2009/12/01 09:14:58 | → Wrapper Started as Service
STATUS | wrapper | 2009/12/01 09:14:58 | Launching a JVM…
INFO | jvm 1 | 2009/12/01 09:14:59 | Wrapper (Version 3.1.2) http://wrapper.tanukisoftware.org
INFO | jvm 1 | 2009/12/01 09:14:59 |
INFO | jvm 1 | 2009/12/01 09:15:04 | Dec 1, 2009 9:15:04 AM org.apache.coyote.http11.Http11Protocol init
INFO | jvm 1 | 2009/12/01 09:15:04 | INFO: Initializing Coyote HTTP/1.1 on http-8080
INFO | jvm 1 | 2009/12/01 09:15:04 | Dec 1, 2009 9:15:04 AM org.apache.catalina.startup.Catalina load
INFO | jvm 1 | 2009/12/01 09:15:04 | INFO: Initialization processed in 474 ms
INFO | jvm 1 | 2009/12/01 09:15:04 | Dec 1, 2009 9:15:04 AM org.apache.catalina.core.StandardService start
INFO | jvm 1 | 2009/12/01 09:15:04 | INFO: Starting service Catalina
INFO | jvm 1 | 2009/12/01 09:15:04 | Dec 1, 2009 9:15:04 AM org.apache.catalina.core.StandardEngine start
INFO | jvm 1 | 2009/12/01 09:15:04 | INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
INFO | jvm 1 | 2009/12/01 09:15:06 | Dec 1, 2009 9:15:06 AM org.apache.coyote.http11.Http11Protocol start
INFO | jvm 1 | 2009/12/01 09:15:06 | INFO: Starting Coyote HTTP/1.1 on http-8080
INFO | jvm 1 | 2009/12/01 09:15:06 | Dec 1, 2009 9:15:06 AM org.apache.catalina.startup.Catalina start
INFO | jvm 1 | 2009/12/01 09:15:06 | INFO: Server startup in 2072 ms

see that the service is ONLY starting on port 8080.
What is going on here?

Any suggestions appreciated.

Al

Here’s an update. Now seeing thwe following in the servoy_log.txt:

2009-12-05 11:41:37,845 ERROR [WrapperSimpleAppMain] com.servoy.j2db.util.Debug - couldnt instantiatie the rmi socketfactory
java.lang.ClassNotFoundException: com.servoy.j2db.server.rmi.tunnel.ServerTunnel.RMISocketFactoryFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.servoy.j2db.server.ApplicationServer.Za(ApplicationServer.java:409)
at com.servoy.j2db.server.ApplicationServer.main(ApplicationServer.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.tanukisoftware.wrapper.WrapperSimp

  • yet servoy works over 8080…just not 8443 - any thoughts?

probably should include the following servoy.properties info:

ApplicationServer.pingDelay=300
ServerManager.numberOfServers=7
SocketFactory.SSLKeystorePassphrase=******
SocketFactory.SSLKeystorePath=c:\security\mail.ks
SocketFactory.compress=true
SocketFactory.rmiServerFactory=com.servoy.j2db.server.rmi.tunnel.ServerTunnel.RMISocketFactoryFactory
SocketFactory.useSSL=true
SocketFactory.useTwoWaySocket=true

does this give any hints? Is the SSL broken in 5.0?
BTW in servoy admin pages I see 'SSL initialized ok" - so servoy thinks its ok.

ARGH!
Found the issue.
Seems that when 5.0 installed it renamed the server.xml file to ‘copy of server.xml’ - I didnt spot it because the modificaiton date of the file didnt change (ie it was still 3 months ago :) The server.xml that it installed didnt have the definition for 8443 in it - or the certificate file info, so not surprising that SSL web didnt start. Renamed it back and restarted server and its all working fine. Hope this helps someone else…

However even though everything seems to be working fine again I STILL have the following error showing up in servoy_log.txt:

2009-12-05 14:50:41,807 ERROR [WrapperSimpleAppMain] com.servoy.j2db.util.Debug - couldnt instantiatie the rmi socketfactory
java.lang.ClassNotFoundException: com.servoy.j2db.server.rmi.tunnel.ServerTunnel.RMISocketFactoryFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.servoy.j2db.server.ApplicationServer.Za(ApplicationServer.java:409)
at com.servoy.j2db.server.ApplicationServer.main(ApplicationServer.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:136)
at java.lang.Thread.run(Unknown Source)

Any ideas?

Al

You have a typo in the SocketFactory.rmiServerFactory setting:
you have

com.servoy.j2db.server.rmi.tunnel.ServerTunnel.RMISocketFactoryFactory

and it should be

com.servoy.j2db.server.rmi.tunnel.ServerTunnelRMISocketFactoryFactory

Spot the difference…

Rob

Thanks rob that fixed it.
Corrected the typo and no errors any more.
My last question is - what did I fix :)
everything seemed to be working ok before (from the users point of view) but obvious it wasnt happy about the RMI socket thingy…just for my own curiosity what differenc would that have made?
Cheers
Al.

Al,

The setting was ignored because the class could not be found.
Http tunneling was not enabled.

Rob