Архив Spring Persistence и entitymanager имеют значение null при доступе из веб-приложения

Я создал файл jar через spring roo (проект maven - архив сохранения), модульные тесты работают нормально, соответствующие файлы находятся в следующем месте

jarFile/META-INF/persistence.xml
jarFile/META-INF/applicationContext.xml
jarFile/META-INF/applicationContext-jpa.xml
jarFile/META-INF/database.properties

Модульные тесты проходят нормально.

Поскольку это проект maven, я добавил его в локальный репозиторий, выполнив команду «mvn install», а после этого добавил его как зависимость к другому веб-приложению на основе maven.

Я запускаю веб-приложение с помощью команды mvn jetty:run. соответствующие файлы в веб-приложении.

webApp/WEB-INF/web.xml
webApp/WEB-INF/applicationContext.xml

Проблема * Он загружает файл webapp/WEB-INF/applicationContext.xml, но как я могу проверить его загрузку дочернего файла jarFile/META-INF/applicationContext.xml или нет? на самом деле, когда я пытаюсь получить доступ к методам класса службы из архива постоянства, entityManager имеет значение NULL. * Если я попытаюсь поместить директиву contextConfigLocation (пробовал различные варианты) в файле web.xml, он даже не загрузит файл webapp/WEB-INF/applicationContext.xml.

Что мне нужно. Используйте методы службы (которые используют entitymanager) из архива сохраняемости из моего веб-приложения.

Заранее спасибо.


person syed asim    schedule 24.03.2012    source источник
comment
Как вы импортируете контекст дочернего приложения - это так: ‹import resource=classpath:/META-INF/applicationContext.xml/›, если нет, это может быть причиной того, что ресурс не найден   -  person Biju Kunjummen    schedule 25.03.2012


Ответы (1)


Нашел ответ, немного покопавшись. На самом деле я был сбит с толку различными способами / синтаксисом для включения файла контекста, пытался использовать все виды синтаксиса classpath *: xxx, но на самом деле WEB-INF не находится на пути к классу, поэтому для загрузки необходимо добавить следующее в web.xml основной файл webApp/WEB-INF/applicationContext.xml

  <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>

Затем пришлось добавить следующее в файл webApp/WEB-INF/applicationContext.xml.

<import resource="classpath*:META-INF/spring/applicationContext*.xml" />

Теперь веб-приложение также загружает файл контекста из файла jar. И дела идут.

person syed asim    schedule 25.03.2012