5 Replies Latest reply on Apr 30, 2014 1:45 PM by Luan Cestari

    Done

    Ricardo Lima Newbie

      ok

        • 1. Re: Post request para webservice JBOSS
          Luan Cestari Novice

          Oi Ricardo, tudo bom?

           

          Você estaria procurando um client (tipo Apache HttpClient ou Resteasy Client (especialmente o 3 que segue o novo padrao do JAX-RS 2 Client))? COm essas ferramentas você poderia fazer as mesmas request e pegar o que vem de resposta e disponibilizar no seu site.

           

          Um forte abraço!

           

          Luan

          1 of 1 people found this helpful
          • 2. Re: Done
            Ricardo Martinelli Oliveira Apprentice

            Não sei se perdi algo, mas sua pergunta foi... sem sentido. E a resposta do Luan... mais sem sentido ainda. =D

             

            Ainda tem algum problema? Pode postar a descrição?

            • 3. Re: Done
              Luan Cestari Novice

              Eh que ele apagou a pergunta (para colocar a resposta eu presumo). Se quiser eu pego o corpo da pergunta no meu email

              • 4. Re: Done
                Luan Cestari Novice

                a pergunta original era:

                """

                Olá caros desenvolvedores,

                 

                Primeiramente gostaria de me desculpar por não ter muito a oferecer no âmbito do desenvolvimento dessa ferramenta. No entanto, esse foi o único lugar onde, talvez, possa existir um nível de conhecimento suficiente para esclarecer minha mente como programador, tendo em vista que existem poucos brasileiros empenhados nessa área. Qualquer informação será muito bem vinda!

                 

                Estou desenvolvendo um website que deverá realizar uma consulta em um servidor no qual eu não tenho acesso. Apenas sei que esse servidor usa JBOSS para consultar seu banco de dados, como mostra o endereço http://cnj.jus.br/bnmp . (para conferir que o sistema utiliza jboss acesse: http://cnj.jus.br/bnmp/teste) Sei que, ao acessar a página e realizar uma pesquisa, o navegador envia um POST request para o servidor com os seguintes caracteres:

                 

                "7|0|13|http://www.cnj.jus.br/bnmp/bnmp/|82DF42693F1874B65BC018ED1DB60C6A|br.jus.cnj.bnmp.client.remote.MandadoRemoteService|find|br.jus.cnj.mp.model.entity.Mandado/4018318967|Z|I|AC||nome_para_consulta|java.util.HashSet/3273092938|br.jus.cnj.mp.model.entity.TipoMandado/662469188|br.jus.cnj.mp.model.entity.TipoSituacaoMandado/1253399059|1|2|3|4|4|5|6|7|7|5|0|0|0|0|0|0|0|0|0|0|0|8|0|0|0|0|0|0|0|0|0|0|0|9|0|0|0|0|0|0|0|0|10|0|9|0|9|0|0|0|0|0|0|0|0|0|11|0|0|0|0|0|0|0|0|0|12|0|0|13|0|0|0|0|0|0|31|"

                 

                Gostaria de recriar essa mesma pesquisa no meu website, ou seja, realizar a pesquisa na minha página para não ter que redirecionar o usuário para a página citada acima.

                 

                PS: não peço código, apenas uma luz sobre como realizar essa tarefa.

                 

                Muito grato,

                 

                Ricardo Lima.

                """

                e depois ele me respondeu:

                 

                """

                Caro Luan Cestari,

                 

                Exatamente. Eu já criei um cliente usando HttpsURLConnection e fiz a solicitação da pesquisa através de um POST.. porem o retorno do site não corresponde ao resultado da pesquisa...Bom, já vi que você entende do assunto, então vou postar aqui o código que utilizei para testar:

                 

                import java.io.BufferedReader;

                import java.io.DataOutputStream;

                import java.io.InputStreamReader;

                import java.net.URL;

                import java.security.cert.X509Certificate;

                import javax.net.ssl.HostnameVerifier;

                import javax.net.ssl.HttpsURLConnection;

                import javax.net.ssl.SSLContext;

                import javax.net.ssl.SSLSession;

                import javax.net.ssl.TrustManager;

                import javax.net.ssl.X509TrustManager;

                public class HttpURLConnectionExample {

                    private final String USER_AGENT = "Mozilla/5.0";

                    public static void main(String[] args) throws Exception {

                        HttpURLConnectionExample http = new HttpURLConnectionExample();

                        System.out.println("\nSend Http POST request");

                        http.sendPost();

                       

                    }

                    // HTTP POST request   private void sendPost() throws Exception {

                        /*       *  fix for       *    Exception in thread "main" javax.net.ssl.SSLHandshakeException:       *       sun.security.validator.ValidatorException:       *           PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:       *               unable to find valid certification path to requested target       */      TrustManager[] trustAllCerts = new TrustManager[] {

                            new X509TrustManager() {

                                public java.security.cert.X509Certificate[] getAcceptedIssuers() {

                                    return null;

                                   

                                }

                                public void checkClientTrusted(X509Certificate[] certs, String authType) {

                                   

                                }

                                public void checkServerTrusted(X509Certificate[] certs, String authType) {

                                   

                                }

                               

                            }

                           

                        }

                        ;

                        SSLContext sc = SSLContext.getInstance("SSL");

                        sc.init(null, trustAllCerts, new java.security.SecureRandom());

                        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

                        // Create all-trusting host name verifier      HostnameVerifier allHostsValid = new HostnameVerifier() {

                            public boolean verify(String hostname, SSLSession session) {

                                return true;

                               

                            }

                           

                        }

                        ;

                        // Install the all-trusting host verifier      HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);

                        /*       * end of the fix       */    String url = "https://www.cnj.jus.br/bnmp";

                        URL obj = new URL(url);

                        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

                        //add reuqest header   con.setRequestMethod("POST");

                        con.setRequestProperty("User-Agent", USER_AGENT);

                        con.setRequestProperty("Accept-Language", "en-US,en;

                        q=0.5");

                        con.setRequestProperty("Cookie", "JSESSIONID=9764784A2085D269A8529FC6D5B1127E.node1;

                        ROUTEID=.18");

                        String urlParameters = "7|0|13|http://www.cnj.jus.br/bnmp/bnmp/|82DF42693F1874B65BC018ED1DB60C6A|br.jus.cnj.bnmp.client.remote.MandadoRemoteService|find|br.jus.cnj.mp.model.entity.Mandado/4018318967|Z|I|AC||isaac heleno da cruz|java.util.HashSet/3273092938|br.jus.cnj.mp.model.entity.TipoMandado/662469188|br.jus.cnj.mp.model.entity.TipoSituacaoMandado/1253399059|1|2|3|4|4|5|6|7|7|5|0|0|0|0|0|0|0|0|0|0|0|8|0|0|0|0|0|0|0|0|0|0|0|9|0|0|0|0|0|0|0|0|10|0|9|0|9|0|0|0|0|0|0|0|0|0|11|0|0|0|0|0|0|0|0|0|12|0|0|13|0|0|0|0|0|0|31|";

                        // Send post request   con.setDoOutput(true);

                        DataOutputStream wr = new DataOutputStream(con.getOutputStream());

                        wr.writeBytes(urlParameters);

                        wr.flush();

                        wr.close();

                        int responseCode = con.getResponseCode();

                        System.out.println("\nSending 'POST' request to URL : " + url);

                        System.out.println("Post parameters : " + urlParameters);

                        System.out.println("Response Code : " + responseCode);

                        BufferedReader in = new BufferedReader(          new InputStreamReader(con.getInputStream()));

                        String inputLine;

                        StringBuffer response = new StringBuffer();

                        while ((inputLine = in.readLine()) != null) {

                            response.append(inputLine);

                           

                        }

                        in.close();

                        //print result   System.out.println(response.toString());

                       

                    }

                   

                }

                 

                Porém, não sei se a variável urlParameters contém o necessário para retornar o resultado desejado. O conteúdo dessa variável são os caracteres que o Chrome envia para o servidor ao realizar uma pesquisa...

                 

                Muito grato pela atenção,

                 

                Ricardo Lima.

                """

                • 5. Re: Done
                  Luan Cestari Novice

                  e o titulo era """Post request para webservice JBOSS"""