Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Consumir recursos de outro sistema com http

Boa tarde, gostaria de saber se usando o Vraptor, consigo consumir um recurso fazendo uma chamada htttp para outro sistema, enquanto estou executando um processo no meu sistema.

Ou seja, ao receber um post em um método meu, internamente enquanto não respondo, posso executar uma chamada http para outro sistema para consumir um recurso? e depois responder meu cliente?

Pergunto, pois vi que existem algumas perguntas em outros forums até para a implementação de outros serviços como socket e etc..

Obrigado.

5 respostas

Olá,

Se você quis dizer WebSocket então:

WebSocket no Java e Java EE: da especificação a exemplos:https://www.infoq.com/br/articles/websocket-java-javaee

Java WebSockets: Introdução: http://www.devmedia.com.br/java-websockets-introducao/30443

Java EE 7: Building Web Applications with WebSocket, JavaScript and HTML5: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html

Agora, VRaptor com Websocket, basta pesquisar o Google: https://www.google.com.br/search?q=vraptor+websocket&oq=vraptor+websocket&aqs=chrome..69i57j0l3.6758j0j4&sourceid=chrome-mobile&ie=UTF-8

Olá Cassius,

Falei do websocket só por comentário, a real dúvida era se o vraptor deixa executar um post http enquanto executa uma regra de negócio minha.

Tipo executar um post para um outro recurso de um outro sistema, quando uma pessoa executar um get pro meu sistema.

Este é o método que estou tentando executar dentro de um controller:

public void exe(){
        try{
            URL oracle = new URL("http://www.google.com.br");
            URLConnection yc = oracle.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(
                                        yc.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) 
                System.out.println(inputLine);
            in.close();
        }catch(Exception e){
            System.out.println("ERROR");
        }
        result.redirectTo(HomeController.class).index();
        return;
    }

E esta é a resposta do erro que estou tendo:

WELD-001435: Normal scoped bean class br.com.teste.controllers.ModuloController is not proxyable because it has no no-args constructor - <unknown javax.enterprise.inject.spi.Bean instance>.
solução!

Olá,

Você está tendo ler o conteúdo de uma URL, como se fosse um GET.

A mensagem de está é clara: você está estando injetar o ModuloController em outro bean mas o ModuloController não tem um construtor sem argumentos, como, public ModuloController().

Putz, realmente fui ver e esqueci de por o construtor vazio... Obrigado.