Meu primeiro app usando spring no tomcat

7 respostas
rodpuc

Estou desenvolvendo pela primeira vez um aplicativo usando spring que deverá rodar no tomcat (war). Já usei spring com glassfish e weblogic (ear).

O problema é que fazendo igual eu faço hoje, os beans que estão anotados com @Autowired não estão sendo injetados e estou tomando um nullpointer neles. Essas sessions (por enquanto) não fazem nenhuma persistência. Para conseguir injetar usando o .war é necessário fazer algo de diferente? Encontrei pouquíssimo material sobre isso no google e o pouco que tem não ajudou em nada :frowning:

7 Respostas

paulo1911

olá rodpuc,

verifique suas annotations pois lembro uma vez que usei o spring 3 que colocando uma anotation nessas classes fazia com que esse ben fosse injetado ao inicial o contexto da aplicação. e nao no momento que em o bem dependente fosse instanciado.

Fallow

fabiomedeirosf

Está usando o que?
JSF ou Servlets e JSP?

rodpuc

struts 2 e jsp

fabiomedeirosf

Tive esse problema.

Seguinte, o primeiro bean que deverá ser injetado deverá ler pelo arquivo applicationContext.xml:

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
context.getBean("testbean");

será necessário apenas para o primeiro bean, os demais na sua hierarquia deverão ser injetados.

Outra forma, é passar o servletContex

ApplicationContext context = 
			WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
		
		Bean bean =  (Bean) context.getBean(beanName);

funciona da mesma forma, os demais na sua hirarquia deverao ser injetados.

rodpuc

Não funcionou…

e não achei muito bonito essa maneira também… fora do tomcar eu sempre usei @Autowired pra injetar, se houver uma maneira de fazer assim também no tomcat eu ia gostar mais :slight_smile:

alves.Felipe

posta como esta o seu applicationContext.
e o Autowired vai servir para injetar as dependencias…por exemplo:

@Service public class TestClienteDao { @Autowired private IClienteDao iClienteDao; ...
vc precisa ter o service, ou repository… declarado na sua classe

rodpuc

Descobri, o problema é que o eclipse não estava enxergando as dependências que coloquei no maven, fui nas propriedades do projeto e selecionei elas.

Criado 20 de dezembro de 2010
Ultima resposta 28 de dez. de 2010
Respostas 7
Participantes 4