JMS Address already in use
Expected Behavior
Webswing starts
Actual Behavior
Webswing does not start and following (or similar) exception (editors cut) is thrown:
07:50:23,479 ERROR [main] (WebswingServlet.java:48) Initialization of Webswing failed.
org.webswing.server.model.exception.WsInitException: Failed to start JMS service.
at org.webswing.server.services.jms.JmsServiceImpl.start(JmsServiceImpl.java:32)
Caused by: java.io.IOException: Failed to bind to server socket: nio://127.0.0.1:34455 due to: java.net.BindException: Address already in use
at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:34)
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
Solution
Run netstat to double check that the port is really in use:
C:\webswing-2.6.6>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 DESKTOP-TABE181:0 LISTENING
TCP 0.0.0.0:445 DESKTOP-TABE181:0 LISTENING
TCP 0.0.0.0:2179 DESKTOP-TABE181:0 LISTENING
TCP 127.0.0.1:34455 DESKTOP-TABE181:0 LISTENING
TCP 127.0.0.1:49720 DESKTOP-TABE181:0 LISTENING
If the Webswing was working before then there is a Webswing process still bound to that address. Find it and shut it down. In case the port needs to be available for a different application or you want to run 2 Webswing processes on the same OS, use following system property to override the default port.
-Dwebswing.jmsUrl=nio://127.0.0.1:34456 while starting your second server.
Explanation
Webswing uses JMS internally to send/receive events to/from the Application Sessions.