Ola a todos!
Estou desenvolvendo um projeto teste utilizando spring em um web service. Só que “travei” ao usar a anotação @Autowired.
Em tempo de execução a classe “ClasseService” não é instanciada e ocorre um NullPointerException
Segue minha classe com as anotações @WebService e @ Autowired
package br.com.teste.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import br.com.teste.service.ClasseService;
@WebService
public class ClasseWebService {
@Autowired
private ClasseService service = null;
@WebMethod
public void executaTeste(){
try{
String s = service.execute(); //não é executado este metodo. Ao chegar nesta linha ocorre a exception!!!
}catch(Exception e) {
e.printStackTrace();
}
}
}
Minha classe de Servico de teste:
package br.com.teste.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Component("classeService")
public class ClasseService {
public final String execute() {
String response = null;
try {
response = "SERVICE";
} catch (Exception e) {
response = "ERRO";
}
return response;
}
}
Acho que o problema é específico para web services porque quando usei @Autowired em classes “normais” o problema não aconteceu.
Acho que o problema pode ser resolvido no applicationContext.xml, mas inseri diversas tags que achei na internet e não resolvi o problema.
Segue a “ultima versão” do xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:tx="http://www.springframework.org/schema/tx"
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/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:component-scan base-package="br.com.teste.service" />
<context:annotation-config />
<context:component-scan base-package="br.com.teste.ws">
<context:include-filter type="annotation" expression="javax.jws.WebService" />
</context:component-scan>
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<jaxws:endpoint id="testeWSSpring"
implementor="br.com.testet.ws.ClasseWebService" address="/busca">
</jaxws:endpoint>
</beans>
Alguém ja passou por isso e pode dar uma luz?
Ps:Estou começando com spring agora.
Abraços!