2011-10-26 34 views
5

Trong một tập mùa xuân tôi có:Tomcat + mùa xuân và môi trường biến

<bean id="propertyConfigurer" class="org.myapp.MyConfigurator"> 
     <property name="locations"> 
     <list> 
         <value>classpath:configuration-${env}.properties</value> 
     </list> 
    </property> 
</bean> 

biến $ {} env biến được định nghĩa trong hồ sơ maven của. Nhưng khi tôi chạy từ nhật thực các ứng dụng trong tomcat 6 (xuất bản) nó không nhìn vào maven. Vậy làm thế nào tôi có thể thiết lập biến cho Tomcat?

Cảm ơn

Randomize

+0

http://stackoverflow.com/questions/3965446/how-to-read-system -contacts-variable-in-spring-applicationcontext –

Trả lời

6

Add hệ thống biến trong Eclipse: Tới Chạy -> Configurations Chạy -> Tomcat tab Chọn Arguments và thêm vào đối số VM -Denv=blabla

4

Để xác định một biến trong trong tomcat context.xml có thể được sử dụng trong mùa xuân thêm dòng này vào bối cảnh ngay trong context.xml.

<Parameter name="env" value="ABCDEFG" override="false"/> 
+0

ghi đè: \t Đặt giá trị này thành false nếu bạn không muốn cho cùng tên thông số, được tìm thấy trong bộ mô tả triển khai ứng dụng web, để ghi đè giá trị được chỉ định tại đây. Theo mặc định, ghi đè được cho phép. –

1

Tarlog giải pháp có thể được giải quyết vấn đề của bạn, nhưng chỉ trong nhật thực , nếu bạn loại bỏ định nghĩa máy chủ của bạn khỏi nhật thực bạn bị mất định nghĩa và bạn cần phải thêm nó một lần nữa mỗi khi bạn thay đổi IDE của bạn hoặc xóa định nghĩa máy chủ. Vì vậy, cách tốt hơn là tạo một tệp shell hoặc bat (như runServer.sh/.bat) theo môi trường của bạn và thêm tham số này vào biến JAVA_OPTS để biến này được gọi khi catalina.sh/.bat đang chạy (khởi động. sh/.bat được gọi là catalina script bên trong nó). Bạn có thể sử dụng phương pháp này tại môi trường địa phương, thử nghiệm và sản của bạn.

Windows: runServer.bat

set JAVA_OPTS="-Dvariable=value" 
tomcat/bin/startup.bat 

Linux: runServer.sh

export JAVA_OPTS="-Dvariable=value" 
tomcat/bin/startup.sh 
Các vấn đề liên quan