2013-09-06 12 views
5

Próbuję uruchomić aplikację serwera i klienta na serwerze Jetty na moim komputerze z systemem Ubuntu 12.04. Serwer uruchamia się bez żadnych problemów i użyłem następującego poleceniaTransport dt_socket 8787 już w użyciu

$ mvn pomost: uruchomić

o wydaniu tego polecenia pierwsza linia została

Nasłuchiwanie dt_socket transportu pod adresem: 8787

Ale kiedy rozpoczęła klienta mam następujący błąd

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 

Wygląda na to, że ma coś wspólnego z transportem dt_socket. Nie rozumiem, co to jest i jak używać innego adresu dla klienta?

Edycja 1

pomost-maven-plugin od pom.xml dla klienta wygląda to

<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> 

moje założenie jest jakiś Jetty zaczyna w trybie debugowania i próbuje dołączyć debugera w port 8787, który jest już powiązany z debuggerem serwera.

+1

czy to możliwe, że masz już wcześniej uruchomioną przystań, która może się zawiesiła ?, ponieważ jest to linux możesz spróbować zabić -9 i możesz uruchomić ps aux | grep jetty znać pid – OscarG

+0

@OscarG Muszę uruchomić klienta i serwer na tym samym komputerze, patrz edytowane pytanie. –

+0

to wygląda na to, że próbujesz uruchomić dwie instancje serwera nasłuchujące na tym samym porcie, jeśli używasz klienta, nie musisz zaczynać słuchania w żadnym porcie, zamiast tego jest on podłączony do serwera na zdefiniowanym porcie. Czy rozumiem twój problem, prawda? – OscarG

Odpowiedz

7

Jetty nie jest automatycznie uruchamiany debugger. Najprawdopodobniej ustawiłeś zmienną środowiskową MAVEN_OPTS na parametry -Xdebug. Sprawdź w „echo $ MAVEN_OPTS”, a zobaczysz coś takiego:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n 

nie można uruchomić dwa procesy, które Maven zarówno próba debugowania na porcie 8787. Więc zmienić swoje globalne MAVEN_OPTS (w bash_profile gdy działa na osx) stonie MAVEN_OPTS dla swojej drugiej sesji terminala:

export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512M" 
+0

To jest dokładnie co mi się przydarzyło - ktoś wysłał mi eksport "MAVEN_OPTS" i umieściłem go w moim pliku .bash_profile, a potem nie mogłem uruchomić więcej niż jednego mvn: jetty. – Andrew

0

Spróbuj konfiguracji wewnątrz wtyczki pomost

<configuration> 
    <connectors> 
     <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> 
      <port>9090</port> 
     </connector> 
    </connectors> 
</configuration> 

Lub alternatywnie, uruchom jetty z linii poleceń w ten sposób

mvn -Djetty.port=9090 jetty:run 
+0

Opcja linii poleceń powoduje ten sam błąd. –

+0

Interesujące, powinno działać zgodnie z dokumentami - https: //docs.codehaus.org/display/JETTY/Maven + Jetty + Plugin –

+0

Pom.xml ma już port 8084 skonfigurowany z Jetty. Wygląda mi na problem w "JDWP Transport dt_socket" –

8

użycie tego polecenia killall -9 java

będzie on zabić wszystkie usługi uruchomione. Będziesz mógł korzystać z portu.

+0

Pracowałem dla mnie, idealna odpowiedź. – Max

Powiązane problemy