Como iniciar um serviço (JOB) no web service

10 respostas
brucsantos

Boa tarde.

Gostaria de deixar um serviço rodando no meu web service, onde, o mesmo deverá ser iniciado assim que subir a aplicação.

Comm um projeto web utilizaria um listener, tentei fazer com o listener mais não rolou.

Aguem tem alguma ideia de como fazer?

Abraços

10 Respostas

Alexandre_Saudate

brucsantos:
Boa tarde.

Gostaria de deixar um serviço rodando no meu web service, onde, o mesmo deverá ser iniciado assim que subir a aplicação.

Comm um projeto web utilizaria um listener, tentei fazer com o listener mais não rolou.

Aguem tem alguma ideia de como fazer?

Abraços

Com Spring + Quartz. O Web Service é só um “adendo” na história toda.

[]'s

brucsantos

Bom dia asaudate,

Então eu não uso spring… tem como fazer sem ele?

Obrigado

Alexandre_Saudate

brucsantos:

Com Spring + Quartz. O Web Service é só um “adendo” na história toda.

Bom dia asaudate,

Então eu não uso spring… tem como fazer sem ele?

Obrigado

Com algum servlet especifico seu (especificando que voce quer carregar uma instancia logo na inicializacao) e o Quartz.

brucsantos

Boa tarde asaudate.

Eu estava pesquisando e vi o JAX-WS. Neste caso eu posso fazer o web service com annotations e exporto como um war resolvendo meu problema. Gostaria de saber qual a sua opnião e a dos demais usuários da comunidade sobre o uso do JAX-WS X AXIS2.

Abraços

Alexandre_Saudate

Boa tarde asaudate.

Eu estava pesquisando e vi o JAX-WS. Neste caso eu posso fazer o web service com annotations e exporto como um war resolvendo meu problema. Gostaria de saber qual a sua opnião e a dos demais usuários da comunidade sobre o uso do JAX-WS X AXIS2.

Abraços

Com certeza, o JAX-WS é uma excelente escolha para uso nas suas aplicações (ao contrário do Axis2).

Mas eu não entendí um ponto… como a escolha do framework para web services vai afetar o fato de você ter um job rodando de tempos em tempos? Você poderia fornecer mais detalhes sobre a arquitetura do seu projeto?

[]'s

brucsantos

Então, não sei se é a melhor saida mas… Ao contrario do axis2 o jax-ws você esporta o projeto com o formato .war, o axis exporta comm o formato .aar. No aar ao exportar o projeto (com o plugin do axis2 nio eclipse) ele só colocava os .class, as dependencias que forem selecionadas manualmente e um arquivo xml com a classe com os contratos(metodos que serão acessados(disponiveis) na “web”). Enfim, com o war consigo configurar um listener que ao iniciar a aplicação starta uma thread que irá rodar um vez por dia para gerar logs. Mais na realidade, tambem escolhi o Jax-WS(Apos algumas pesquisas e testes) por gerar menos codigo(usa annotation) do que o axis2 no client, facilidade e robustes. Não sei se fui expecifico ao tentar explicar a duvida sobre a escolha do framework. Também não sei se se é a melhor opção a minha escola que fica aberto a sugestões e criticas.

Abraços

Alexandre_Saudate

brucsantos:

Com certeza, o JAX-WS é uma excelente escolha para uso nas suas aplicações (ao contrário do Axis2).

Mas eu não entendí um ponto… como a escolha do framework para web services vai afetar o fato de você ter um job rodando de tempos em tempos? Você poderia fornecer mais detalhes sobre a arquitetura do seu projeto?

Então, não sei se é a melhor saida mas… Ao contrario do axis2 o jax-ws você esporta o projeto com o formato .war, o axis exporta comm o formato .aar. No aar ao exportar o projeto (com o plugin do axis2 nio eclipse) ele só colocava os .class, as dependencias que forem selecionadas manualmente e um arquivo xml com a classe com os contratos(metodos que serão acessados(disponiveis) na “web”). Enfim, com o war consigo configurar um listener que ao iniciar a aplicação starta uma thread que irá rodar um vez por dia para gerar logs. Mais na realidade, tambem escolhi o Jax-WS(Apos algumas pesquisas e testes) por gerar menos codigo(usa annotation) do que o axis2 no client, facilidade e robustes. Não sei se fui expecifico ao tentar explicar a duvida sobre a escolha do framework. Também não sei se se é a melhor opção a minha escola que fica aberto a sugestões e criticas.

Abraços

Quanto a configurar um WAR, perfeito. Mas a dúvida é, mesmo, em relação à arquitetura do projeto…

brucsantos

bom o projeto está no inicio e ainda está em testes… Temos na empresa um web service em php que comunica via socket com outro php que se comunica com o cobol. A ideia é Mudar essa parte do php para java cortando a comnicação via socket e fazendo a comunicação java/cobol. No projeto(Web Service) vou utilizar o maven, o JAX-WS e talvez o spring para fazer a parte de segurança. A parte da comunicação com o cobol será feita com uma biblioteca da microfocus mas essa parte ainda estamos pesquisando como vamos fazer se faremos a comunicação direto do servidor do webservice com o cobol ou se vamos ter um ‘client’ no server do cobol e fazer comunicação com rmi. Terioricamente esse ws não irá fazer consulta no banco de dados, quem fará isso é o cobol. Basicamente acho que é isso… a ideia principal e centralizar os serviços que estão espalhados em diversos servidores(tá uma bagunça). O que você acha?

Abraços

Alexandre_Saudate

bom o projeto está no inicio e ainda está em testes… Temos na empresa um web service em php que comunica via socket com outro php que se comunica com o cobol. A ideia é Mudar essa parte do php para java cortando a comnicação via socket e fazendo a comunicação java/cobol. No projeto(Web Service) vou utilizar o maven, o JAX-WS e talvez o spring para fazer a parte de segurança. A parte da comunicação com o cobol será feita com uma biblioteca da microfocus mas essa parte ainda estamos pesquisando como vamos fazer se faremos a comunicação direto do servidor do webservice com o cobol ou se vamos ter um ‘client’ no server do cobol e fazer comunicação com rmi. Terioricamente esse ws não irá fazer consulta no banco de dados, quem fará isso é o cobol. Basicamente acho que é isso… a ideia principal e centralizar os serviços que estão espalhados em diversos servidores(tá uma bagunça). O que você acha?

Abraços

Bom… minhas considerações:

  1. Um ESB viria bem a calhar na sua arquitetura;
  2. Cuidado com tarefas secundárias, como persistência: você deve desacoplar o máximo possível dos teus web services.
  3. Se já vai usar Spring pra fazer a segurança, porque não usar também o Spring WS?
  4. Ou então, porque não usar o JAX-WS com EJB’s? Ficaria mais elegante, e ajudaria, também, na parte de persistência, pra usar JPA.

[]'s

brucsantos

Bom dia asaudate!

  1. Bom o ESB um dei uma breve lida em um post que tem aqui no guj. Se você tiver alguma indicação de material para leitura, etc… seria de otima ajuda.
    2 e 4) Minha applicação inicial mente não terá nada de persistencia… será apenas serviços para comunicar com o cobol. No caso do EBJ cheguei a pensar mais a ideia inicial é não ter nada de java no servidor onde roda o cobol( não sei se será possivel, caso necessário é uma ótima ideia).
  2. Não conheço o Spring WS, na realidade eu estou fazendo um curso de Spring na Global Code( curso fechado para a empresa que trabalho) mais sim, vou estudar essa idéia.

Man, obrigado pela força… Sugestões e criticas são sempre bem vindas!

Abraços

Criado 24 de maio de 2011
Ultima resposta 26 de mai. de 2011
Respostas 10
Participantes 2