2012-02-17 9 views
5

Mam aplikację internetową działającą na serwerze aplikacji websphere 8 (WAS). W web.xml mam:Ładowanie zasobów wiosną w serwerze aplikacji websphere

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

Wtedy kiedy wdrożyć mojej aplikacji na WAS - Ładuje wszystkie moje pliki CTX przez adresy URL z prefiksem „wsjar: file ...” To jest dobre.

Ale kiedy w moim app pracy staram się używać przedmiot mojego kontekstu aplikacji, aby załadować zasobów tak:

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

To rzuca wyjątek, który url błędne - ale jeśli dodać preffix „wsjar”, ​​jak to:

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

Działa dobrze. Ale muszę stworzyć uniwersalny system do ładowania zasobów na różnych serwerach aplikacji i kontenerach serwletów. W przedrostku tomcat nie jest potrzebny.

Jak mogę załadować zasoby w mojej aplikacji na WAS w taki sam sposób jak ContextLoader przez ContextLoaderListener wczytać moje pliki ctx bez prefiksu "wsjar:"?

Odpowiedz

-1

Spróbuj czegoś takiego.

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

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

Problem polega na tym, że "Zasób zasobów = appContext.getResource (" ścieżka klasy *: od/example/**/I - *. Sql ");" NIE DZIAŁA NA WAS –

1

Kiedy używam pełnych nazw paczek, nie mam problemów z IBM WAS. W ten sposób:

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

Nie próbowałem używać asteriksów do wskazywania wielu plików. Może lista wszystkich pojedynczych plików może ci pomóc.

Powiązane problemy