2013-09-06 25 views
5

Tôi đang cố chạy ứng dụng Máy chủ và Ứng dụng khách trong máy chủ Jetty trên máy tính Ubuntu 12.04 của tôi. Các máy chủ bắt đầu mà không cần bất kỳ vấn đề và tôi sử dụng lệnh sauGiao thông vận tải dt_socket 8787 đã được sử dụng

$ mvn jetty: chạy

về việc ban hành lệnh này dòng đầu tiên được

Nghe cho dt_socket giao thông tại địa chỉ: 8787

Nhưng khi tôi khởi chạy ứng dụng, tôi gặp lỗi sau

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 

Có vẻ như cần làm gì với dt_socket vận chuyển. Tôi không hiểu nó là gì và cách sử dụng địa chỉ khác cho Khách hàng như thế nào?

Sửa 1

cầu cảng-maven-plugin từ pom.xml cho khách hàng trông giống như

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

giả định của tôi này được một số Jetty được bắt đầu trong chế độ gỡ lỗi và cố gắng để gắn debugger tại cổng 8787 đã được ràng buộc để gỡ lỗi của máy chủ.

+1

là có thể bạn đã có một phiên bản trước đó của cầu tàu đã chạy mà có lẽ bị rơi ?, vì nó là linux bạn có thể thử giết -9 , và bạn có thể chạy ps aux | grep jetty để biết pid – OscarG

+0

@OscarG Tôi phải chạy một máy khách và máy chủ trên cùng một máy, xem câu hỏi đã chỉnh sửa. –

+0

thì có vẻ như bạn đang cố gắng bắt đầu hai phiên bản máy chủ đang lắng nghe trên cùng một cổng, nếu bạn đang chạy ứng dụng, nó không cần phải bắt đầu nghe vào bất kỳ cổng nào, thay vào đó nó được kết nối với máy chủ trên cổng được xác định. Tôi có hiểu vấn đề của bạn đúng không? – OscarG

Trả lời

7

Jetty KHÔNG tự động bắt đầu gỡ rối. Có thể bạn đã đặt biến môi trường MAVEN_OPTS để bao gồm các tham số -Xdebug. Kiểm tra với 'echo $ MAVEN_OPTS' và bạn sẽ thấy một cái gì đó như:

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

Bạn không thể chạy hai maven quá trình mà cả hai cố gắng để gỡ lỗi trên cổng 8787. Vì vậy, thay đổi MAVEN_OPTS toàn cầu của bạn (trong .bash_profile khi chạy trên OSX) hoặc thay đổi MAVEN_OPTS của bạn cho phiên terminal thứ hai của bạn:

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

Đây chính xác những gì đã xảy ra với tôi - ai đó đã gửi cho tôi xuất khẩu 'MAVEN_OPTS' của họ và tôi đặt nó vào .bash_profile của tôi và sau đó tôi không thể bắt đầu nhiều hơn một mvn: jetty. – Andrew

0

Hãy thử cấu hình này bên Plugin cầu cảng

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

Hoặc cách khác, chạy jetty từ dòng lệnh theo cách này

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

Tùy chọn dòng lệnh của bạn đang đưa ra cùng một lỗi. –

+0

Thú vị, nó sẽ hoạt động theo tài liệu - https: //docs.codehaus.org/display/JETTY/Maven + Jetty + Plugin –

+0

pom.xml đã được cấu hình cổng 8084 của Jetty. Dường như với tôi vấn đề nằm trong "JDWP Transport dt_socket" –

8

sử dụng lệnh này killall -9 java

Nó sẽ giết chết tất cả các dịch vụ đang chạy. Bạn sẽ có thể sử dụng cổng.

+0

Làm việc cho tôi, câu trả lời hoàn hảo. – Max

Các vấn đề liên quan