Author: asankha
Date: Thu Nov 23 04:53:35 2006
New Revision: 478554
URL: http://svn.apache.org/viewvc?view=rev&rev=478554
Log:
Try to start Synapse HTTP on port 8080
if this fails, try the next available port starting from 8008 (8009, 8010...etc)
Modified:
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseHTTPServer.java
Modified:
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseHTTPServer.java
URL:
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseHTTPServer.java?view=diff&rev=478554&r1=478553&r2=478554
==============================================================================
---
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseHTTPServer.java
(original)
+++
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseHTTPServer.java
Thu Nov 23 04:53:35 2006
@@ -28,6 +28,8 @@
import javax.xml.namespace.QName;
import java.io.File;
import java.util.Iterator;
+import java.net.ServerSocket;
+import java.net.Socket;
/**
* Starts all transports as specified on the axis2.xml
@@ -60,6 +62,9 @@
listenerManager.init(configctx);
}
+ // decide on HTTP port to execute
+ selectPort(configctx);
+
Iterator iter = configctx.getAxisConfiguration().
getTransportsIn().keySet().iterator();
while (iter.hasNext()) {
@@ -77,6 +82,38 @@
} catch (Throwable t) {
t.printStackTrace();
System.out.println("[SynapseHTTPServer] Startup failed...");
+ }
+ }
+
+ private static void selectPort(ConfigurationContext configCtx) {
+ // check if configured port is available
+ TransportInDescription trsIn = (TransportInDescription)
+ configCtx.getAxisConfiguration().getTransportsIn().get(new
QName("http"));
+
+ if (trsIn != null) {
+
+ int port =
Integer.parseInt(trsIn.getParameter("port").getValue().toString());
+
+ while (true) {
+ ServerSocket sock = null;
+ try {
+ sock = new ServerSocket(port);
+
trsIn.getParameter("port").setValue(Integer.toString(port));
+ break;
+ } catch (Exception e) {
+ if (port == 8080) {
+ port = 8008;
+ } else {
+ port++;
+ }
+ } finally {
+ if (sock != null) {
+ try {
+ sock.close();
+ } catch (Exception e) {}
+ }
+ }
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]