Problemas com Injeção de @Service em um @webservice JAX-WS.

51 views
Skip to first unread message

Rafael Marques

unread,
Sep 3, 2018, 5:46:36 PM9/3/18
to jav...@googlegroups.com
Pessoal, eu tenho um webservice da seguinte maneira:

@WebService(name="ProvaWS")
public class GravameWsEndpoint implements ProvaWS {
   
    @Autowired
    ProvaService provaService;

..................

@Service
public class ProvaService implements IProvaService {
   
    @Autowired
    private ProvaRepository provaWsRepository;

..........................
 e o que está ocorrendo é que quando tento usar o provaService ele vem null.

Efraim Gentil

unread,
Sep 3, 2018, 5:52:54 PM9/3/18
to jav...@googlegroups.com
Fala Rafael, você esta usando Jax-RS com o Spring correto? Nesse caso você precisa registrar o seu Endpoint, tem algumas formas de você escanear o package também mas não vou ter um exemplo agora...

@Configuration
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(GravameWsEndpoint.class);
}
}

--
Você recebeu essa mensagem porque está inscrito no grupo "java.ce" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javace+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para jav...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/javace.
Para mais opções, acesse https://groups.google.com/d/optout.


--
Atenciosamente,
Efraim Gentil - @efraimgentil

Rafael Marques

unread,
Sep 4, 2018, 9:28:34 AM9/4/18
to jav...@googlegroups.com
Só para constar a resposta. Resolvi de outra forma. Ao invés de ser um projeto spring boot, meu serviço passou a ser um java-web normal e implementei a especificação JavaEE .. com isso eu perdi as coisas do spring, como IoC, e os repository... ao invés disso, meu @webservice foi anotado como @Stateless e tive que mudar a forma de acesso ao banco de dados.Isso foi ruim porque deixei de aproveitar a camada de repository que estava pronta.

Bruno Maomeh

unread,
Sep 4, 2018, 9:41:16 AM9/4/18
to jav...@googlegroups.com
Opa Rafael, tu tentaste usar o @Controller ou @RestController do spring, ao invés de usar o @WebService?

Rafael Marques

unread,
Sep 4, 2018, 9:47:37 AM9/4/18
to jav...@googlegroups.com
Não Bruno, não tentei. Vou verificar depois se resolve. Valeu pela resposta !

Bruno Maomeh

unread,
Sep 4, 2018, 10:02:04 AM9/4/18
to jav...@googlegroups.com
Rafael, o spring precisa "conhecer" os objetos que vão ter as depencencias injetadas por ele (@Autowired),
e, se não estou engano, o spring não reconhece a anotação @WebService.. por isso não está conseguindo injetar as dependencias do teu cotroller..

Matheus Alves

unread,
Sep 4, 2018, 10:03:16 AM9/4/18
to jav...@googlegroups.com
isso acontece pois a sua classe não está sendo gerenciada pelo Spring.. existem anotações que falam pro spring que vc quer que determinada classe seja gerenciada pelo Spring, bem como @Configuration, @Service, @Controller, @RestController...
se deseja implementar um serviço use a anotação @RestController..
se ainda assim não estiver dando certo, garanta que o pacote no qual a sua classe está esteja dentro ou abaixo do pacote da classe principal do Spring.
Atenciosamente, 
Matheus Emmanuel Coelho Alves
Analista De Sistemas
Skype: matheusecoelho | Telefone: (085) 9 9639-3216

Rafael Marques

unread,
Sep 4, 2018, 10:11:37 AM9/4/18
to jav...@googlegroups.com
Mesmo que eu coloque @RestController acima do @webservice não funciona. Ele sobe o serviço mas o spring não consegue gerenciar a classe.

lembrando que é um serviço soap.

Junior Fernandes

unread,
Sep 4, 2018, 10:24:58 AM9/4/18
to jav...@googlegroups.com
Tenta deixar só o @RestController e tirar o @WebService

Junior Fernandes

Analista de Tecnologia da Informação
Universidade Federal do Ceará - UFC



Davi Mustafa

unread,
Sep 4, 2018, 10:44:06 AM9/4/18
to jav...@googlegroups.com
Nunca fiz um serviço SOAP com spring, mas tava dando uma olhada na documentação deles e lá tem um exemplo. Não é pra usar o @RestController aparentemente. Segue, espero que ajude.

Rafael Marques

unread,
Sep 4, 2018, 10:47:46 AM9/4/18
to jav...@googlegroups.com
Eu tenho um feito desse jeito aí Davi Mustafa, porém agora queria criar uma integração entre Jax-ws que é JavaEE com as injeções do Spring.

Rafael Marques

unread,
Sep 4, 2018, 10:48:45 AM9/4/18
to jav...@googlegroups.com
Junior, Se retirar o @webservice, ele deixa de ser um serviço na forma que fiz.
só para entender, criei um wsdl e gerei as classes. Com isso, criei esse webservice para usar a classe gerada pelo wsdl.
Gerei as classes usando wsconsume do proprio wildfly.
e pra gerar o wsdl eu usei o wsgen da propria jdk.

Em ter, 4 de set de 2018 às 11:24, Junior Fernandes <jrfern...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages