Tem como um WEB SERVICE enviar uma mensagem para um cliente?

Olá :smiley:

Recentemente estou estudando web services pra implementar aqui na empresa. Funciona da seguinte maneira: temos um java servidor pra cada loja e uma página de administração (php) aqui para suporte. É necessário que o admin possa pedir alguns dados para cada cliente, e pra isso é necessário fazer uma requisição via internet. Pensamos então na solução de web service, sendo que ficaria um jws em cada servidor, e quando ele recebesse uma mensagem do admin, iria passar para o java servidor, e este iria retornar o dado para o jws que iria retornar para o admin. Uma solução bem simples. Mas o problema é que eu pesquisei muito e não consegui achar uma forma de o JWS se comunicar com o java servidor. Li um pouco sobre message handler mas não sei se resolveria o problema, e agora eu to travado :confused:

Obrigado pela ajuda.

Não entendí muito bem o problema (e, portanto, acabei não achando tão simples assim :slight_smile: ), mas, pra mandar mensagens de volta pro cliente, normalmente você faz com que o cliente tenha um web service instalado em sí próprio, e usa WS-Addressing (ou, simplesmente, muda o endpoint) para que o servidor escolha para qual cliente mandar a resposta. Na prática, isso faz com que o servidor seja alterado para modo assíncrono, ou seja, ele responde na hora, dando uma mensagem de “OK, recebí”, e depois, ele manda a resposta de fato.

Isso te atende?

[]'s

Fiz um esqueminha aqui pra ter como entender melhor:

[quote=Arthur.hvt]Fiz um esqueminha aqui pra ter como entender melhor:

[/quote]

OK, entendí. Nesse caso, o JWS pode enviar uma informação de registro de si para o admin. Quando o admin precisar enviar uma informação, ele ajusta o endpoint para que seja o JWS (cliente) específico. Nesse caso, o JWS também precisa ter um web service para recebimento da mensagem.

Na verdade, o JWS é o web service. Quem é o cliente é o Admin (que vai consumir o JWS) e o Java server, que vai ter que retornar as informações de alguma forma pro JWS. Eu só não sei como que o JWS vai pedir pro Java server, e como ele vai retornar.

Pelo mesmo modelo. O Java server expõe um serviço e o JWS consome esse serviço.

Estou fazendo o projeto no Netbeans. Aqui não tem uma opção pra eu fazer um WebService num projeto J2SE. É possivel isso? Porque se for nem seria necessario o JWS, ja que ele só serve de ponte do Admin pro Java Server.

É possível sim. Só não entendí porque chamar ele de “Java server”, então =D

Para criar o standalone, é só você criar a classe, anotar ela como Web Service e depois usar a classe Endpoint. Tem mais detalhes no meu blog: http://alesaudate.com/2010/12/08/how-to-develop-a-standalone-ssl-web-service/ (nesse tópico tem coisas além do que você precisa. Ignore as linhas 3 a 32, inclusive, e altere o servidor para Http).

[]'s

Hm, vou estudar isso melhor e depois eu venho com mais duvidas :slight_smile:

Obrigado.