Pessoal,
Estou apanhando à alguns dias, e gostaria de uma ajuda.
Estou desenvolvendo uma aplicação Web, com Struts 2, Spring 2.5 e Hibernate.
O Struts está funcionando ok.
Quero utilizar a opção @Autowired do Spring.
Mas não estou conseguindo injetar os Beans.
Segue meu código:
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Sample Struts 2</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<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>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!--
Permite injetar automaticamente se estiver anotado com @autowired
-->
<context:annotation-config />
<!--
varre todas as classes hierarquicamente dentro desse pacote
que estiverem com anotações do spring
-->
<context:component-scan base-package="br.com.pacote.*"/>
</beans>
MinhaAction
@Controller
public class MinhaAction extends ActionSupport{
private static final long serialVersionUID = 2145535221379940078L;
@Autowired
private MeuFacade meuFacade;
public String execute() throws Exception{
this.meuFacade.chamaMetodo();
MeuFacade
public interface MeuFacade {
public void chamaMetodo;
}
MeuFacadeImpl
@Service
@Scope("prototype")
public class MeuFacadeImpl implements MeuFacade {
@Override
public void chamaMetodo() {
System.out.println("Spring wired");
}
}
O applicationContext.xml está na pasta src/resources, junto com o struts.xml.
Quando debugo a aplicação, na minha Action o facade anotado com @Autowired está null.
Alguém sabe o que está faltando?
Obrigado
Rafael

