Fato estranho esta acontecendo com um webservice que esta lançando um nullpointerexception
tando a classe Service como a clase WebService esta anotada e inicializava normal publicando o serviço,mas quando tentava usar (consumir) o serice que estava anotado com Autowired esta nulo,
ou seja, o spring não estava injetando.
Checado todas as anotações e verificado a ordem de inicialização do spring, percebi que a minha classe anotada com @webservice que não tinha interface nenhuma, tinha que ser percebida primeiro pelo spring so depois pelo CXF, entao como fazer isso?
segue o codigo:
<context:component-scan base-package="br.com.cri.service" />
<context:annotation-config/>
<context:component-scan base-package="br.com.cri.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="matonWebServiceEndpoint"
implementor="#matonWebService"
address="/MatriculaOnLine" />
a classe Service é normal, so colocar o @Service
a classe WebService ficou assim:
@WebService
@SOAPBinding(style=Style.RPC, use=Use.LITERAL, parameterStyle=ParameterStyle.WRAPPED)
public class MatonWebService {
@Autowired
private MatriculaService matriculaService;
public Retorno atualizandoServentia(@WebParam(name = "serventia") String id,
@WebParam(name = "atualizando") boolean atualizando) {
return matriculaService.atualizandoServentia(id, atualizando, true);
}