[RESOLVIDO]: Consumir webservice com SSL - erro: Place the resource correctly in the classpath

1 resposta
V

Olá,

Criei um aplicativo simples Em Java SE para consumir os serviços de um webservice do Protheus (Microsiga), com SSL, certificado criado pelo OpenSSL.

Está ocorrendo o seguinte erro:

erro ao tentar realizar o login: Cannot find ‘https://192.168.2.122/ws/USERPORTAL.apw?WSDL’ wsdl. Place the resource correctly in the classpath.

  1. Usando Netbeans 7.1, criei um projeto simples de um aplicativo Java SE, para exemplificar o erro;
  2. Adicionei um cliente para serviço web, baseando-me na url do WSDL ( http://192.168.2.122/ws/USERPORTAL.apw?WSDL );
  3. Na classe principal, adicionei a chamada ao método de login deste servilo USERPORTAL;
  4. Fiz as devidas alterações na classe principal para chamar tal método e reproduzir o problema, conforme segue:
package teste;

import br.com.microsiga.webservices.userportal.LOGINUSERSTRUCT;

/**
 *
 * @author vicente
 */
public class Teste {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String mensagem;
        try {
            LOGINUSERSTRUCT result = prtlogin("teste", "teste", "1", "");
            System.out.println(result.getUSERCODE());

        } catch (Exception ex) {
            mensagem = ex.getMessage();

            System.out.println(" erro ao tentar realizar o login: " + mensagem);
        }

    }

    private static LOGINUSERSTRUCT prtlogin(java.lang.String userlogin, java.lang.String userpassword, java.lang.String usertype, java.lang.String portalaccess) {
        br.com.microsiga.webservices.userportal.USERPORTAL service = new br.com.microsiga.webservices.userportal.USERPORTAL();
        br.com.microsiga.webservices.userportal.USERPORTALSOAP port = service.getUSERPORTALSOAP();
        return port.prtlogin(userlogin, userpassword, usertype, portalaccess);
    }
}

Este mesmo serviço acessado via http não dá problema. Já via https ocorre a bronca acima.

1 Resposta

V

Comunidade,

Resolvido. Segue a solução:

  1. Atualizei para o NetBeans 7.2;

  2. Após tentar executar este mesmo projeto, o erro que surgiu foi outro:
    HTTP transport error: 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

  3. Em nova pesquisa devido a este novo erro, encontrei a solução perfeita no Blog do Patrick Espake: http://blog.patrickespake.com/2012/05/28/como-lidar-com-certificados-ssl-invalidos-no-java/

Feitas a adaptações, o problema sumiu!

Outro local encontrado foi do Vítor Pamplona (vfpamp), grande colaborador da comunidade Java: http://www.jroller.com/vfpamp/entry/suportando_ssl_nos_clientes_java

Criado 11 de outubro de 2012
Ultima resposta 11 de out. de 2012
Respostas 1
Participantes 1