Transport dt_socket 8787 already in use
Solution 1
Jetty does NOT automatically starts the debugger. You most likely have set the MAVEN_OPTS environment variable to include -Xdebug parameters. Check with 'echo $MAVEN_OPTS' and you will see something like:
-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
You can't run two maven processes which both try to debug on port 8787. So change your global MAVEN_OPTS (in .bash_profile when running on osx) or change your MAVEN_OPTS for your second terminal session:
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512M"
Solution 2
Enter the below command in terminal / command prompt
killall -9 java
It will kill all the java processes. You will be able to use the port then.
Gaurav Agarwal
I programmed in Java Android Linux - Ubuntu Java Servlet Ansible AWS Good discussion on forming a startup. --
Updated on June 08, 2020Comments
-
Gaurav Agarwal almost 4 years
I am trying to run a Server and Client application in Jetty server on my Ubuntu 12.04 machine. The server starts without any problem and I used the following command
$ mvn jetty:run
on issuing this command the first line was
Listening for transport dt_socket at address: 8787
But when I launched the client I got the following error
ERROR: transport error 202: bind failed: Address already in use ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690] FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) Aborted
Looks something to do with transport dt_socket. I have no understanding what it is and how to use another address for Client?
Edit 1
jetty-maven-plugin from pom.xml for client looks like this
<build> <plugins> <!-- Specific jetty-maven-plugin configuration for running Jetty during development. None of its goals are run in a normal build lifecycle. --> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${jetty-maven-plugin.version}</version> <configuration> <webAppConfig> <contextPath>/</contextPath> <extraClasspath>${basedir}/src/test/resources/</extraClasspath> </webAppConfig> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>${servlet.port}</port> <host>0.0.0.0</host> </connector> </connectors> <reload>manual</reload> <useTestClasspath>true</useTestClasspath> </configuration> </plugin> </plugins> </build>
My assumption is some Jetty is starting in debug mode and trying to attach the debugger at port 8787 which is already bound to debugger of Server.