Загрузка ресурсов весной на сервер приложений websphere - PullRequest
6 голосов
/ 17 февраля 2012

У меня есть веб-приложение, работающее на сервере приложений websphere 8 (WAS).В web.xml у меня есть:

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

Затем, когда я развертываю свое приложение на WAS - оно загружает все мои файлы ctx по URL с префиксом "wsjar: file ...", что хорошо.

Но когда в моем рабочем приложении я пытаюсь использовать объект контекста моего приложения для загрузки ресурсов, как это:

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

Выдает исключение, которое URL неверно - но если я добавлю префикс "wsjar:",как это:

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

Хорошо работает.Но мне нужно создать универсальную систему для загрузки ресурсов на разные серверы приложений и контейнеры сервлетов.В tomcat префикс не нужен.

Как я могу загрузить ресурсы в моем приложении на WAS таким же образом, как ContextLoader через ContextLoaderListener загрузить мои файлы ctx без префикса "wsjar:"?

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Когда я использую полные имена пакетов, у меня нет проблем с IBM WAS. Как это:

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

Я не пробовал использовать звездочки для указания нескольких файлов. Может быть, список всех отдельных файлов может работать на вас.

0 голосов
/ 17 февраля 2012

Попробуйте что-то вроде этого.

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

    Resource resource = 
       appContext.getResource("classpath*:by/example/**/I-*.sql");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...