Estoy tratando de agregar una referencia de servicio web a mi aplicación en NetBeans 7.0.1. El Metro webservice está protegido con SSL y está alojado en el mismo equipo que quiero que se ejecute en el cliente. Estoy usando el «Nuevo Cliente de Servicio Web’ asistente, pero cuando tengo que presentar un certificado SSL protegido WSDL, me sale el siguiente mensaje de error:

Problema con la descarga de wsdl o archivo de esquema.

Compruebe la dirección URL, la configuración del proxy, o si el servidor se está ejecutando.

URL: https://192.168.0.200:8181/MyApp/myService?wsdl

Metro Guía de Usuario – Para Asegurar el Ejemplo de Cliente de Servicio Web de la Aplicación (SSL) estados:

En el paso donde usted se dirige a cortar y pegar la dirección URL del servicio web que usted desea que el cliente se consumen en el campo URL WSDL, tipo https ://completo-nombre de host:8181 /CalculatorApplication/CalculatorWSService?wsdl (los cambios se indican en negrita) para indicar que el cliente debe hacer referencia al servicio web mediante el puerto seguro. La primera vez que acceda a este servicio, aceptar el certificado (s1as) cuando se le pida. Este es el certificado de servidor apareciendo para confirmar su identidad para el cliente.

En algunos casos, puede recibir un mensaje de error diciendo que la dirección URL https://completo-nombre de host :8181/CalculatorApplication/CalculatorWSService?wsdl no podía ser descargado. Sin embargo, esta es la URL correcta, y no se carga cuando se ejecuta el servicio. Así, cuando se produce este error, repita los pasos que crear el Cliente de Servicios Web utilizando el WSDL. El segundo tiempo, el servicio web de referencia se crea y se puede continuar con la creación de el cliente.

No importa cuántas veces lo intente me sigue apareciendo el mismo mensaje de error (no hay proxies conjunto y el servidor se está ejecutando con los servicios a implementar). El WSDL se muestra en el navegador después de aceptar el certificado. Si puedo entrar en el basic URL de WSDL (el uno sin el HTTPS), el asistente acepta y se genera el cliente. ¿Qué tengo que hacer para conseguir este trabajo?

ACTUALIZACIÓN

Lo mismo se aplica si ejecuto el cliente y servicio en diferentes máquinas. Estoy utilizando el valor predeterminado certificado de desarrollo. Recuperador de salida:

De Error: Un error de e/S en la actualidad. sol.de seguridad.validador.ValidatorException: PKIX ruta de la construcción de error: el sol.de seguridad.proveedor de.certpath.SunCertPathBuilderException: no se puede encontrar la ruta de certificación válida para el destino solicitado`

Tengo keytore y almacén de confianza en el VMargs? Lo que si quiero tener este servicio de referencia en la misma aplicación web que contiene los servicios web?

  • Sospecho que el certificado del servidor no está en el cliente la confianza de la tienda y el protocolo de enlace ssl falla.
  • The first time you access this service, accept the certificate (s1as) when you are prompted. Esto no sucede y me sale el mensaje de error. Hice un trabajo de cliente .RED, y que llevó, después de ingresar la dirección URL de WSDL en el asistente.

1 Comentario

  1. 2

    Respuesta encontrada aquí:

    Usted tiene que ejecutar NetBeans con las siguientes opciones:

    <NETBEANS_HOME>/bin/netbeans.exe
    -J-Djavax.net.ssl.trustStore=<AS_HOME>/domains/domain1/config/cacerts.jks 
    -J-Djavax.net.ssl.keyStore=<AS_HOME>/domains/domain1/config/keystore.jks 
    -J-Djavax.net.ssl.trustStorePassword=changeit 
    -J-Djavax.net.ssl.keyStorePassword=changeit

    Yo en realidad aquellos en <NETBEANS_HOME>/etc/netbeans.conf, en netbeans_default_options. Yo todavía tengo un error, sin embargo, esto resultó que soy capaz de generar código de cliente SSL de servicios de protección. Ejecutando una simple llamada WS resultados en este:

    EDITAR IMPORTANTE La siguiente sólo sucede si usted está utilizando la mayor JAX-WS bibliotecas!

    Excepción en el hilo «principal» javax.xml.ws.WebServiceException: No se puede encontrar ‘https://localhost:8181/myApp/myService?wsdl’ wsdl. Lugar el recurso correctamente en la ruta de clases.

    Esto puede ser resuelto mediante la configuración de los clientes DATASTOREWS_WSDL_LOCATION propiedad con un método como este:

    private static URL getURL() {
        try {
            return new URL("https://localhost:8181/myApp/myService?wsdl");
        } catch (MalformedURLException ex) {
            Logger.getLogger(DataStoreWS_Service.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
    }

    Esto solo es necesario si se genera por una sencilla Aplicación Java, debido a que el código de cliente generado es diferente para Aplicaciones Web Java. Además, yo no pude hacerlo funcionar con un nombre de host completo, al igual que mi IP local. Lo único que funcionó fue localhost. Una cosa importante: no te olvides de bulto del mismo de Metro de las bibliotecas como en el lado de servicio! NB informe de error.

Dejar respuesta

Please enter your comment!
Please enter your name here