2013-06-18 2 views
0

Я пытаюсь интегрировать и настроить Struts 2 + Spring и зарегистрировать класс слушателя ContextLoaderListener в качестве параметра contextConfigLocation Я пытаюсь написать SpringBeans.xml вместо стандартного applicationContext.xml. Но проблема в том, что этот SpringBeans.xml находится прямо в корневой директории src .. и я не знаю, как написать param-value .. /src/SpringBeans.xml ... помогите пожалуйста.Struts 2 + Spring и contextConfigLocation

+0

В чем проблема и после весны конфигурации. –

ответ

0

Вы не будет напишите src/SpringBeans.xml, потому что ваш исходный каталог не является артефактом для развертывания.

Вы должны поместить конфигурационный файл либо:

  • На пути к классам (IMO обычно предпочтительнее)
  • В WEB-INF (для предотвращения прямого доступа клиента)

Если это на classpath, как его развернуть, зависит от вашей системы сборки/упаковки.

Например, в Eclipse вы можете просто оставить его в корне src. Если вы используете Maven, он должен идти в корень src/main/resources. Если это не в корне, измените ниже.

В противном случае обеспечивают приложение-относительный путь, например,

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/META-INF/SpringBeans.xml</param-value> 
</context-param> 

(или в WEB-INF, или там, где вы кладете его.)

0

Попробуйте ниже код,

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>Example</display-name> 
    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/classes/SpringBeans.xml 
     </param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

Если вы используете размещение SpringBeans.xml в src, и вы используете ANt build, то он будет помещен в WEB-INF/classes. Но вы размещаете в другой папке say/config, после чего вы создаете файл build.xml для размещения * .xml-файлов в папке WEB-INF/classes при развертывании.

Смежные вопросы