2011-02-05 52 views
6

Tôi đang chạy một ứng dụng web java trong Eclipse (Helios) bằng Tomcat 7. Khởi động máy chủ thành công (thời hạn được chỉ định) tuy nhiên thanh tiến trình của Eclipse vẫn quay nói rằng Tomcat đang bắt đầu. Cuối cùng là thời gian chờ đạt được và một lỗi được ném.Tomcat trong Eclipse: Nó chạy nhưng hết thời gian trong khi khởi động anyway

Tôi tin Tomcat là tốt như tôi đã thực hiện lệnh mà nó sử dụng và chạy nó bằng tay trong trình bao. Tomcat chạy tốt và tôi có thể nhấn ứng dụng web tại URL dự kiến. Tôi cũng có thể nhấn nó sau khi nó khởi động và trước khi thời gian chờ xảy ra.

Tôi đã cài đặt lại Eclipse, tôi đã chạy nó với sạch, tôi đã xóa/tạo lại máy chủ. Không có gì có hiệu quả. Có ai có manh mối nào không?

Trả lời

1

tôi đã tìm thấy câu trả lời (chỉ sau khi công bố ở đây mà, trớ trêu thay, có vẻ là làm thế nào để tìm câu trả lời cho câu hỏi của chính mình.)

Câu trả lời là các cổng đã được sử dụng bởi quá trình khác. Tôi nên biết nhưng nâng cấp một số gói khác nhau sẽ làm điều này. Nhưng vào các triệu chứng:

  • Tomcat bắt đầu thành công. Có thể nhấn ứng dụng trước khi hết thời gian chờ.
  • Eclipse có vẻ như không thể xác định liệu máy chủ đã bắt đầu hay đã dừng.

HTTP hiện đang chạy theo mặc định 8080. Thật không may, kho dữ liệu của tôi đang nghe ở 8080 (tôi đoán là tôi không chắc chắn nó làm gì với cổng ngoại trừ được phân bổ cho jmx). Tôi đoán rằng Eclipse không thể phát hiện Tomcat ở 8080.

+0

câu hỏi nằm trong bạn và câu trả lời cũng nằm trong bạn. ;) –

+0

Chính xác là vấn đề của tôi ... cảm ơn vì câu trả lời! Tôi đã có một trường hợp Vagrant chạy ánh xạ tới 8080, nhưng thật đáng buồn Eclipse không hiển thị vấn đề trong khi khởi động, và nó vui vẻ báo cáo "Server startup in xxxxx ms" thay thế. – uncrase

1

Tôi gặp sự cố này, có vẻ như phiên bản tomcat của tôi bị lỗi (tomcat 7.0.23) chuyển phiên bản tomcat của bạn sang phiên bản khác (ví dụ: tomcat 7.0.14) nó hoạt động cho tôi.

may mắn

0

Điều này có thể xảy ra nếu hai servlets đã được ánh xạ tới các URL yêu cầu đó, Tomcat sẽ khởi động tốt nhưng Eclipse sẽ không thể để tạo ra các tập tin web.xml đúng và do đó sẽ không có thể xuất bản webApp. Kiểm tra bản đồ servlet của bạn @WebServlet("\TheURLThatShouldInvokeThisServlet") đảm bảo hai servlet không có cùng "TheURLThatShouldInvokeThisServlet".

(đưa nó cho các hồ sơ!)

4

Tôi có vấn đề này, có vẻ như Eclipse gọi url ứng dụng sau khi khởi động để đảm bảo nó đang chạy.

Máy khách proxy (pshione) đã thay đổi proxy hệ thống để nhật thực không thể gọi trang bắt đầu và cho rằng ứng dụng chưa bắt đầu !!

Tôi đã xóa proxy và nó hoạt động tốt ngay bây giờ!

Đã chỉnh sửa:

Điều này cũng có thể xảy ra khi bạn khởi động tomcat bằng SSL, nhưng chứng chỉ ssl không hợp lệ. Khi bạn thực hiện cuộc gọi đến và trang web chứng nhận SSL không hợp lệ, một số trình duyệt xác nhận xem bạn có muốn đi hay không, nhưng nhật thực không thể kết nối với trang web ssl không hợp lệ của bạn! Tôi khuyên bạn nên kiểm tra trang web của mình bằng http bình thường thay vì https.

+0

+1 để giải quyết sự cố của tôi. – wener

+0

+1 cho ghi chú SSL. Sửa chữa của tôi đã được thêm lại các kết nối 8080 (nhưng vẫn giữ kết nối cert 8443 cert tự ký của tôi). – csd

3

Một số cập nhật của Java gây ra sự cố với hoạt động mạng của Eclipse.Cụ thể, Eclipse cố gắng sử dụng IPv6 thay vì IPv4 và đôi khi thất bại. Khi Eclipse khởi động Tomcat, một trong những bước cuối cùng mà nó thực hiện là kiểm tra cuộc gọi gỡ lỗi tới Tomcat. Đây có thể là phần treo. May mắn thay, sửa chữa là rất dễ dàng. Chúng ta chỉ cần nói với Eclipse để sử dụng IPv4 thay thế.

Để làm điều này, chỉnh sửa file eclipse.ini (tìm thấy trong thư mục Eclipse) và thêm dòng sau vào cuối của tập tin trên một dòng riêng:

-Djava.net.preferIPv4Stack=true 

Khởi động lại Eclipse và bạn sẽ được tốt đi.

0

Tôi có cùng một sự cố, đó là do các trình kết nối mà tôi đã xác định (tôi chỉ có trình kết nối AJP).

Thêm trình kết nối HTTP vào tệp server.xml của Tomcat đã giải quyết được sự cố.

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