2013-05-22 17 views
58

Tôi muốn bắt đầu chế độ gỡ lỗi cho ứng dụng của mình. Nhưng tôi cần phải bắt đầu chế độ gỡ lỗi từ dấu nhắc lệnh. Có thể không? Và các thủ tục sẽ khác nhau giữa tomcat 5.5 đến tomcat 6.?Làm thế nào để bắt đầu chế độ gỡ lỗi từ dấu nhắc lệnh cho máy chủ apache tomcat?

+4

catalina.bat jpda bắt đầu – sanbhat

+1

có thể trùng lặp của [Bắt đầu tomcat 6 trong chế độ gỡ lỗi?] (Http://stackoverflow.com/questions/5458212/start-tomcat-6-in-debug-mode) – Makoto

+4

Bạn nên chấp nhận một câu trả lời. Câu trả lời của Mohammad Adil trả lời câu hỏi của bạn. – Amudhan

Trả lời

2

Trước tiên, điều hướng đến thư mục TOMCAT-HOME/bin.

Sau đó, thực hiện như sau trong dòng lệnh:

catalina.bat jpda start 

Nếu máy chủ Tomcat đang chạy dưới Linux, chỉ cần gọi chương trình catalina.sh

catalina.sh jpda start 

Đó là giống nhau cho Tomcat 5.5 và Tomcat 6

+0

Bạn có thể cho tôi biết tương đương với Tomcat 7.0 không? – RAS

84
Trên cửa sổ
$ catalina.bat jpda start 
Trên Linux/Unix
$ catalina.sh jpda start 

Thông tin thêm ---->http://wiki.apache.org/tomcat/FAQ/Developing

+0

Cảm ơn, điều này đã giúp tôi thiết lập tùy chọn gỡ lỗi trong 'startup.sh'. Chỉnh sửa dòng cuối cùng trong 'tomcat/bin/startup.sh' thành' exec '$ PRGDIR "/" $ EXECUTABLE "jpda start" $ @ "'. Tôi luôn quên bắt đầu trong chế độ gỡ lỗi và tôi có thể lưu khởi động lại 5 phút. –

35

Đối với cửa sổ đầu tiên thiết lập các biến:

set JPDA_ADDRESS=8000 
set JPDA_TRANSPORT=dt_socket 

để bắt đầu máy chủ trong chế độ gỡ lỗi:

%TOMCAT_HOME%/bin/catalina.bat jpda start 

Đối với unix xuất khẩu đầu tiên biến:

export JPDA_ADDRESS=8000 
export JPDA_TRANSPORT=dt_socket 

và để bắt đầu máy chủ trong chế độ gỡ lỗi:

%TOMCAT_HOME%/bin/catalina.sh jpda start 
14
  1. Từ IDE của bạn, tạo ra một cấu hình debug từ xa, cấu hình nó cho mặc định cổng JPDA Tomcat mà là cổng 8000.

  2. Từ dòng lệnh:

    Linux:

    cd apache-tomcat/bin 
    export JPDA_SUSPEND=y 
    ./catalina.sh jpda run 
    

    Windows:

    cd apache-tomcat\bin 
    set JPDA_SUSPEND=y 
    catalina.bat jpda run 
    
  3. Execute cấu hình debug từ xa từ IDE của bạn, và Tomcat sẽ bắt đầu chạy và bây giờ bạn có thể đặt breakpoint trong IDE.

Lưu ý:

Dòng JPDA_SUSPEND=y là không bắt buộc, nó rất hữu ích nếu bạn muốn điều đó Apache Tomcat không bắt đầu thực hiện nó cho đến khi bước 3 được hoàn thành, hữu ích nếu bạn muốn gỡ rối các vấn đề khởi tạo ứng dụng.

0

Bên trong catalina.dơi thiết lập các cổng mà bạn muốn để bắt đầu gỡ rối

if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress 
set JPDA_ADDRESS=9001 

Sau đó, bạn chỉ đơn giản là có thể bắt đầu các chương trình gỡ rối với

catalina.bat jpda 

Bây giờ từ Eclipse hoặc IDEA chọn gỡ lỗi từ xa và bắt đầu bắt đầu gỡ rối bằng cách kết nối đến cảng 9001.

-2

có hai cách để chạy tomcat trong chế độ gỡ lỗi

  1. Sử dụng jdpa chạy

  2. Sử dụng JAVA_OPTS

tham khảo article này để biết thêm thông tin này được xác định rõ nó

+0

Vui lòng thêm giải pháp thực tế vào câu trả lời của bạn, không chỉ cung cấp liên kết. Ngoài ra, liên kết dẫn đến một trang web rõ ràng thuộc về bạn. Trong những trường hợp như vậy, bạn nên tiết lộ liên kết của mình với liên kết. http://stackoverflow.com/help/promotion –

+0

Không được khuyến khích chỉ liên kết câu trả lời, vì nếu liên kết thay đổi thông tin bị mất. Bạn nên đăng các chi tiết liên quan .... –

10

Một câu trả lời ngắn gọn là để thêm các tùy chọn sau khi JVM được bắt đầu.

JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8080" 
+0

Tôi khuyên bạn không nên sử dụng 8080 làm cổng gỡ lỗi ... – Dave

+0

Khi sử dụng JAVA_OPTS -Xdebug, bạn không cần bắt đầu catalina bằng jpda. Nếu không, bạn có thể kết thúc với điều này 'LRI: Không thể tải nhân viên JVM TI hai lần này, hãy kiểm tra dòng lệnh java của bạn để biết các tùy chọn jdwp trùng lặp.' – lnarasimhan

0

Những hướng dẫn làm việc cho tôi trên apache-tomcat-8.5.20 trên mac os 10.13.3 sử dụng jdk1.8.0_152:

$ cd /path/to/apache-tomcat-8.5.20/bin 
$ export JPDA_ADDRESS="localhost:12321" 
$ ./catalina.sh jpda run 

Bây giờ kết nối với cổng 12321 từ IntelliJ/Eclipse và tận hưởng gỡ lỗi từ xa.