Spring não encontra arquivo de configuração

5 respostas
xxmayconxx

Bom, quando eu uso o Spring em um projeto não web, ele econtra normal, eu só coloco o xml dos benas no mesmo dirtório que a classe que ira usa-lo e funciona, mas no projeto wb não ocorre assim, mesmo se eu coloque no web-inf, no package da classe, ele não encontra, talvez seja necessário configurar algo do web.xml que eu não sei.

eu pego o arquivo do spring assim:

ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] { “beans.xml” });

5 Respostas

drsmachado

Sim, é preciso configurar no web.xml.

<servlet>
   <servlet-name>dispatcher</servlet-name>
   <servlet-class>
     org.springframework.web.servlet.DispatcherServlet
   </servlet-class>
   <init-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/spring/dispatcher-config.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
   <servlet-name>dispatcher</servlet-name>
   <url-pattern>/</url-pattern>
 </servlet-mapping>

Esse é um exemplo, mude o local do arquivo e seja feliz.

xxmayconxx

Então, eu coloquei isso no web.xml mas mesmo assim não funcionou. poderia ser específico sobre como tem que ser feito?

drsmachado

Já procurou na documentação?
Como assim não funcionou? Isso é muito vago, precisa ser mais claro em suas dúvidas.

xxmayconxx

o erro que estou obtendo é:

java.io.FileNotFoundException: class path resource [WEB-INF/applicationContext.xml] cannot be opened because it does not exist

no web xml ficou dessa forma:

<servlet>  
       <servlet-name>dispatcher</servlet-name>  
       <servlet-class>  
         org.springframework.web.servlet.DispatcherServlet  
       </servlet-class>  
       <init-param>  
         <param-name>contextConfigLocation</param-name>  
         <param-value>/WEB-INF/applicationContext.xml</param-value>  
       </init-param>  
       <load-on-startup>1</load-on-startup>  
    </servlet>  
      
    <servlet-mapping>  
       <servlet-name>dispatcher</servlet-name>  
       <url-pattern>/</url-pattern>  
    </servlet-mapping>

e na classe que usa o xml está:

ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] { "/WEB-INF/applicationContext.xml" });

drsmachado

Camarada, entenda uma coisa, WEB != DESKTOP.
Começa por aí que você vai conseguir.
Segundo, esta marcação XML diz que o spring deve procurar o arquivo applicationContext.xml dentro do diretório WEB-INF.

<param-value>/WEB-INF/applicationContext.xml</param-value>

Se o arquivo não estiver ali, por alguma razão demoníaca, você terá essa exception.

Criado 29 de abril de 2012
Ultima resposta 30 de abr. de 2012
Respostas 5
Participantes 2