2012-02-17 32 views
5

Tôi có một ứng dụng web chạy trên máy chủ ứng dụng websphere 8 (WAS). Trong web.xml tôi có:Tải tài nguyên theo mùa xuân trong máy chủ ứng dụng websphere

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath*:by/example/**/*-ctx.xml</param-value> 
</context-param> 

Sau đó, khi tôi triển khai ứng dụng của tôi trên WS - Nó tải tất cả các file ctx của tôi bằng cách url với tiền tố "wsjar: tập tin ..." đó là tốt.

Nhưng khi trong ứng dụng làm việc của tôi, tôi cố gắng sử dụng đối tượng của bối cảnh ứng dụng của tôi tải các tài nguyên như thế này:

applicationContext.getResource("classpath*:by/example/**/I-*.sql").getUrl() 

Đó là ném ngoại lệ mà URL không chính xác - nhưng nếu tôi thêm preffix "wsjar:", như này:

applicationContext.getResource("wsjar:classpath*:by/example/**/I-*.sql").getUrl() 

Nó hoạt động tốt. Nhưng tôi cần phải tạo ra hệ thống phổ quát để tải các tài nguyên trên các máy chủ ứng dụng khác nhau và các thùng chứa servlet. Trong tiền tố tomcat không cần thiết.

Làm cách nào để tải tài nguyên trong ứng dụng của mình trên WAS giống như cách ContextLoader qua ContextLoaderListener tải tệp ctx của tôi mà không có preffix "wsjar:"?

Trả lời

-1

Hãy thử một cái gì đó như thế này.

 ApplicationContext appContext = 
     new ClassPathXmlApplicationContext(new String[] {"If-you-have-any.xml"}); 

    Resource resource = 
     appContext.getResource("classpath*:by/example/**/I-*.sql"); 
+2

Vấn đề là "Resource resource = appContext.getResource (" classpath *: by/example/**/I - *. Sql ");" KHÔNG LÀM VIỆC TRÊN WAS –

1

Khi tôi sử dụng tên gói đầy đủ, tôi không gặp vấn đề gì với IBM WAS. Như thế này:

  classpath:com/tdp/abc/facilitador/boost/config/reglaBoostWS-support.xml   

Tôi không thử sử dụng các asterik để trỏ nhiều tệp. Có thể liệt kê tất cả các tập tin cá nhân có thể làm việc cho bạn.

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