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?


84

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 bắt đầu chế độ gỡ lỗi từ dấu nhắc lệnh. Có khả thi không? Và liệu quy trình có khác nhau giữa tomcat 5.5 đến tomcat 6. không?


6
catalina.bat jpda start
sanbhat

Câu trả lời:


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

Thông tin thêm ----> https://cwiki.apache.org/confluence/display/TOMCAT/Developing


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đến exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@". Tôi luôn quên khởi động ở chế độ gỡ lỗi và tôi có thể lưu một lần khởi động lại 5 phút.
TomasZ.

51

Đối với các biến đặt đầu tiên của windows:

set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket

để khởi động máy chủ ở chế độ gỡ lỗi:

%TOMCAT_HOME%/bin/catalina.bat jpda start

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

export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket

và để khởi động máy chủ ở chế độ gỡ lỗi:

%TOMCAT_HOME%/bin/catalina.sh jpda start

um có, mặc dù 8000 và dt_socket được đề cập như giá trị mặc định trong catalina.bat, bạn thực sự phải cài đặt chúng như trong bài viết ở trên: /
hello_earth

cho câu trả lời quan trọng và Nó đã làm việc cho tôi +1. đã cứu một ngày của tôi
Joginder Malik

25
  1. Từ IDE của bạn, tạo cấu hình gỡ lỗi từ xa, định cấu hình nó cho cổng JPDA Tomcat mặc định là cổng 8000.

  2. Từ dòng lệnh:

    Linux:

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

    Các cửa sổ:

    cd apache-tomcat\bin
    set JPDA_SUSPEND=y
    catalina.bat jpda run
    
  3. Thực thi cấu hình gỡ lỗi từ xa từ IDE của bạn và Tomcat sẽ bắt đầu chạy và bây giờ bạn có thể thiết lập các điểm ngắt trong IDE.

Ghi chú:

Các JPDA_SUSPEND=ydòng 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 các vấn đề khởi tạo ứng dụng khắc phục sự cố.


14

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

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

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àyERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
lnarasimhan

4

Đầu tiên, Điều hướng đến TOMCAT-HOME/binthư mục.

Sau đó, thực hiện những điều sau trong dòng lệnh:

catalina.bat jpda start

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

catalina.sh jpda start

Tomcat 5.5 và Tomcat 6 cũng vậy


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

3

Các hướng dẫn này phù hợp với 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.


2

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

  1. Sử dụng jdpa run

  2. Sử dụng JAVA_OPTS

Đầu tiên thiết lập môi trường. Sau đó khởi động máy chủ bằng các lệnh sau.

export JPDA_ADDRESS=8000

export JPDA_TRANSPORT=dt_socket

%TOMCAT_HOME%/bin/catalina.sh jpda start

sudo catalina.sh jpda start

tham khảo bài viết này để biết thêm thông tin, điều này được xác định rõ ràng


1

Nếu bạn muốn thực hiện việc này thông qua powershell trên windows, điều này phù hợp với tôi

$ env: JPDA_SUSPEND = "y"

$ env: JPDA_TRANSPORT = "dt_socket"

/path/to/tomcat/bin/catalina.bat jpda start


0

Inside catalina.bat đặt cổng mà bạn muốn khởi động trình gỡ lỗi

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

Sau đó, bạn chỉ cần khởi động trình gỡ lỗi bằng

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ỡ lỗi bằng cách kết nối với cổng 9001.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.