2013-07-12 37 views
9

Chủ đề này tương tự như: Disable taglib scanning in google app engine (Jetty)Tắt quét TLD khi khởi tạo appengine

Tác giả của chuỗi đó đã chấp nhận câu trả lời sai.

Chúng tôi đã cố gắng giảm thời gian khởi động appengine trong các trường hợp của mình, tôi đã đi qua việc quét đường dẫn lớp TLD của thẻ taglib.

Ứng dụng của tôi có 50mb lọ. Quá trình quét của TLD mất 20% thời gian khởi động:

enter image description here

(Hình ảnh từ chụp Yourkit của thời gian khởi động). Bạn cũng có thể thiết lập mức logger.properties thành ALL và bạn sẽ thấy vấn đề quét đường dẫn lớp đang diễn ra.

Có cách nào để tắt tính năng đó trên appengine không? Thiên Chúa cấm chúng tôi có bất cứ điều gì để làm với taglibs, JSP, hoặc bất cứ điều gì như thế! Chúng tôi có một vận chuyển rất trơn tru + mùa xuân-mvc container.

Một lần nữa, vấn đề là rất rõ ràng: appengine không tôn trọng "org.mortbay.jetty.webapp.NoTLDJarPattern" cấu hình trong web.xml

điều này được giết dịch vụ của chúng tôi! Thời gian khởi động của chúng tôi sẽ kéo dài hơn 60 giây và chúng tôi cần phải làm bất cứ điều gì để giảm điều đó.

+0

Bạn đã gửi một vấn đề chưa trong dự án appengine? https://code.google.com/p/googleappengine/ – sappenin

+3

Chỉ là linh cảm, nhưng bạn đã thử đổi tên các JAR của bạn để khớp với 'NoTLDJarPattern' được [AppEngine's webdefault.xml] sử dụng hay không (https://code.google.com /p/appenginejava/source/browse/trunk/src/com/google/appengine/tools/development/webdefault.xml#42)? Nó không đẹp, nhưng có thể đặt tên tất cả các JAR của bạn, ví dụ: 'jetty - (...). jar' giúp. Ngoài ra, đóng gói lại tất cả các JAR vào một JAR lớn và chỉ cần cung cấp cho một tên được bao phủ bởi 'NoTLDJarPattern' của AppEngine. –

+0

Philipp, tôi chưa thử điều đó. Tôi sử dụng maven để gói dự án của tôi, có vẻ như khó khăn để làm điều đó. Có cơ hội nào bạn thử không? –

Trả lời

1

Gửi bài bình luận của tôi từ trên cao như câu trả lời:

Đổi tên lọ của bạn để phù hợp với NoTLDJarPattern sử dụng bởi AppEngine's webdefault.xml.

Nó không đẹp, nhưng đặt tên tất cả các JAR của bạn, ví dụ: jetty-(...).jar sẽ ngăn không cho chúng được quét cho TLD.

Cách khác, đóng gói lại tất cả các JAR vào một JAR lớn và chỉ cần đặt tên đó được bao gồm bởi số NoTLDJarPattern của AppEngine.

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