dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #08995
Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 2295: Let jetty start in own thread.
On 6 December 2010 10:23, <noreply@xxxxxxxxxxxxx> wrote:
> ------------------------------------------------------------
> revno: 2295
> committer: Bob Jolliffe bobjolliffe@xxxxxxxxx
> 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 Server@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 : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help : https://help.launchpad.net/ListHelp
>
>
References