2013-01-10 23 views

Trả lời

7

chút cách tiếp cận chi tiết

Phương pháp thứ nhất:

tắt máy đầu tiên tomcat của bạn [từ thư mục bin (sh shutdown.sh)] sau đó bạn phải xóa toàn bộ nội dung của thư mục webapps tomcat của bạn (rm -fr *) sau đó đổi tên tệp WAR của bạn thành ROOT.war cuối cùng bắt đầu tomcat [từ thư mục bin (sh startup.sh)]

Phương pháp thứ hai:

rời tập tin chiến tranh của bạn trong CATALINA_BASE/webapps, dưới tên ban đầu của nó - tắt autoDeploy và deployOnStartup trong phần tử Host của bạn trong file server.xml. xác định rõ ràng tất cả ngữ cảnh ứng dụng trong tệp server.xml, chỉ định cả đường dẫn và docBase. Bạn phải làm điều này, bởi vì bạn đã vô hiệu hóa tất cả các cơ chế triển khai tự động Tomcat , và Tomcat sẽ không triển khai các ứng dụng của bạn nữa trừ khi nó tìm thấy bối cảnh của chúng trong tệp server.xml.

Lưu ý:

rằng phương pháp cuối cùng này cũng ngụ ý rằng để thực hiện bất kỳ thay đổi bất kỳ ứng dụng , bạn sẽ phải dừng lại và khởi động lại Tomcat.

Phương pháp thứ ba:

Nơi tập chiến tranh của bạn bên ngoài của CATALINA_BASE/webapps (nó phải là bên ngoài để ngăn chặn việc triển khai tăng gấp đôi). - Đặt tệp ngữ cảnh có tên ROOT.xml vào
CATALINA_BASE/conf//. Phần tử duy nhất trong tệp ngữ cảnh này PHẢI có thuộc tính doc2ase trỏ đến vị trí của tệp chiến tranh của bạn. Không được đặt thành phần đường dẫn - nó bắt nguồn từ tên tệp .xml, trong trường hợp ROOT.xml này. Xem Context Container ở trên để biết chi tiết.

+1

Phương pháp 3: 'ROOT. xml' cần phải đi trong 'CATALINA_BASE/conf/Catalina/localhost' (về mặt kỹ thuật là' conf// ', nhưng' Catalina' và 'localhost' là các giá trị mặc định trong' server.xml ngoài hộp ') không trực tiếp trong' conf'. –

+0

Tôi đã thử phương pháp đầu tiên, Hầu hết thời gian "http://myapp.mydomain.com" cung cấp cho tôi lỗi yêu cầu xấu, Nếu tôi truy cập ứng dụng bằng IP, hoạt động tốt. Giải pháp cho điều này là gì. Tôi đang sử dụng tomcat 6. – n92

2

1) máy chủ ứng dụng của bạn cần phải được cấu hình để có ứng dụng Grails của bạn như ứng dụng ROOT

2) grails đường dẫn ngữ cảnh ứng dụng của bạn cần được "/" hoặc app.context =/

+0

môi trường của bạn là gì? – TheWhiteRabbit

+0

Môi trường của tôi là sản xuất, nó không hoạt động, tôi đã tạo ra các tập tin chiến tranh bằng cách sử dụng "grails prod war". – n92

+0

Cách thực hiện "máy chủ ứng dụng đầu tiên cần được định cấu hình để ứng dụng grails của bạn là ứng dụng ROOT". Tôi đã thực hiện bước thứ hai – n92

1

Bạn có thể làm Tomcat phục vụ một webapp làm bối cảnh gốc bằng cách đặt tên nó là ROOT.war, tức là lấy myapp-0.1.war do Grails tạo ra và sao chép nó vào TOMCAT_DIR/webapps/ROOT.war.

Nếu bạn có một thiết lập cho grails.serverURL trong bạn Config.groovy bạn sẽ cần phải ghi đè này cho môi trường sản xuất của bạn để đảm bảo rằng bất kỳ liên kết tuyệt đối tạo ra bởi Grails là chính xác

environments { 
    production { 
    grails.serverURL = 'http://myapp.mydomain.com' 
    } 
} 

Nhưng trong Grails 2 nó thường là an toàn để bỏ qua hoàn toàn grails.serverURL và cho phép ứng dụng suy ra giá trị phù hợp khi chạy. Bạn chỉ cần nó nếu bạn đang chạy đằng sau một proxy ngược mà không đi qua tiêu đề Host đúng.