On 6 December 2010 10:23, <[email protected]> wrote: > ------------------------------------------------------------ > revno: 2295 > committer: Bob Jolliffe [email protected] > branch nick: trunk > timestamp: Mon 2010-12-06 10:21:18 +0000 > message: > Let jetty start in own thread. > modified: > dhis-live/src/main/java/org/hisp/dhis/TrayApp.java > dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java
Some odd behaviour. When i run on linux and try and start dhis-live twice - then the second instance does as expected. It (eventually) tries to open the listening port and fails with: 2010-12-06 13:34:09.760:WARN::failed ser...@9504f2: java.net.BindException: Address already in use as it should. And with the server thread now implemented properly, the lifecycle event bubbles through to the handler, the user is shown a error message and dhis-live exits. (This can happen much quicker if we start the server listening first then load the dhis context but that's for later). The odd thing is when I run the same thing on windoze7 it seems that I can run multiple instances without any error and 'netstat -a' shows them all happily bound to the same listening port. This doesn't make any sense to me. Anybody got any ideas? Regards Bob > > > -- > lp:dhis2 > https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk > > Your team DHIS 2 developers is subscribed to branch lp:dhis2. > To unsubscribe from this branch go to > https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription > > === modified file 'dhis-live/src/main/java/org/hisp/dhis/TrayApp.java' > --- dhis-live/src/main/java/org/hisp/dhis/TrayApp.java 2010-11-29 15:11:43 > +0000 > +++ dhis-live/src/main/java/org/hisp/dhis/TrayApp.java 2010-12-06 10:21:18 > +0000 > @@ -151,16 +151,9 @@ > > appServer = new WebAppServer(); > appServer.init( installDir, this ); > + > + appServer.start(); > > - try > - { > - appServer.start(); > - } > - catch ( Exception ex ) > - { > - String message = "Web server failed to start: \n" + > ex.toString(); > - JOptionPane.showMessageDialog( (JFrame) null, message ); > - } > } > > // > ------------------------------------------------------------------------- > @@ -182,7 +175,8 @@ > trayIcon.displayMessage( "Started", "DHIS 2 is running. Your browser > will\n be pointed to " + getUrl() + ".", > TrayIcon.MessageType.INFO ); > trayIcon.setToolTip( "DHIS 2 Server running" ); > - trayIcon.setImage( createImage( RUNNING_ICON, "Running icon" ) ); > + trayIcon.setImage( createImage( RUNNING_ICON, "Running icon" ) ); > + > launchBrowser(); > } > > @@ -242,7 +236,7 @@ > log.info( "Graceful shutdown..." ); > try > { > - appServer.stop(); > + appServer.shutdown(); > } > catch ( Exception ex ) > { > > === modified file 'dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java' > --- dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java 2010-11-29 > 15:11:43 +0000 > +++ dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java 2010-12-06 > 10:21:18 +0000 > @@ -50,7 +50,7 @@ > /** > * @author Bob Jolliffe > */ > -public class WebAppServer > +public class WebAppServer extends Thread > { > public static final String DHIS_DIR = "/webapps/dhis"; > > @@ -87,24 +87,35 @@ > } > > server.setConnectors( new Connector[] { connector } ); > - > + server.addLifeCycleListener( serverListener ); > + > + loadDHISContext(installDir+DHIS_DIR); > + } > + > + public void loadDHISContext(String webappPath) > + { > WebAppContext dhisWebApp = new WebAppContext(); > dhisWebApp.setMaxFormContentSize( 5000000 ); > - dhisWebApp.setWar( installDir + DHIS_DIR ); > - log.info( "Setting DHIS 2 web app context to: " + installDir + > DHIS_DIR ); > + dhisWebApp.setWar( webappPath ); > + log.info( "Setting DHIS 2 web app context to: " + webappPath ); > > server.setHandler( dhisWebApp ); > - server.addLifeCycleListener( serverListener ); > } > > - public void start() > - throws Exception > + public void run() > { > - server.start(); > - server.join(); > + try > + { > + log.debug("Server thread starting"); > + server.start(); > + log.debug("Server thread exiting"); > + } catch ( Exception ex ) > + { > + log.error( "Server wouldn't start : " + ex); > + } > } > > - public void stop() > + public void shutdown() > throws Exception > { > server.stop(); > > > _______________________________________________ > Mailing list: https://launchpad.net/~dhis2-devs > Post to : [email protected] > Unsubscribe : https://launchpad.net/~dhis2-devs > More help : https://help.launchpad.net/ListHelp > > _______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : [email protected] Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp

