Webservice cliente no puede encontrar wsdl

He creado dos webservices clientes en NetBeans 7.1, imitando el tutorial que tienen en su página web.

Me había hecho la primera de ellas hace un tiempo en contra de un archivo wsdl situado en una ubicación http, y no tuvo ningún problema con el webservice

El webservice que estoy trabajando en este momento tiene un archivo wsdl situado en un https ubicación. La instalación del service fue sin un tirón. La única diferencia con la primera de ellas fue un emergente de alerta mí un certificado de seguridad, la cual acepté. Servicio, Genera Fuentes, META-INF, etc son todos creados con éxito. Una copia local del archivo wsdl es almacenado en mi pc bajo el src/.. de la carpeta.

Sin embargo, tan pronto como me voy a correr mi código, me aparece este error:

No puede encontrar ‘https://-domain-.net/-XYZServices-/-ABCXML?wsdl-‘
wsdl. Lugar el recurso correctamente en la ruta de clases.

He encontrado varios problemas similares en Stackoverflow y otros lugares en línea, pero nada de lo que realmente dirigió a mi problema. He intentado varias sugerencias de todos modos:

He comprobado el jax-ws-catalog.xml archivo y encontrar la dirección url citado anteriormente asignado a la carpeta local donde la copia local del wsdl que se almacena.
He comprobado si la carpeta local de la realmente contenida en el archivo wsdl – lo hizo.
He intentado editar la url en la jax-ws-catalog.xml archivo a punto para el puerto 8080 y 8081 – no hay alegría.

Supongo que es un problema de seguridad, pero no tiene idea de cómo solucionar este problema.

Puede alguien me apunte en la dirección correcta aquí.

FYI: soy bastante nuevo en java y NetBeans.

Gracias.

InformationsquelleAutor user973718 | 2012-08-17

4 Kommentare

  1. 5

    La mejor manera de evitar el error «No se puede encontrar el wsdl. Lugar el recurso correctamente en la ruta de clases.» es el uso de wsdllocation para especificar la ubicación de los wsdl y también de que el paquete de wsdl como parte de la jarra.

    Cuando se especifica el wsdllocation, asegúrese de añadir «/» al principio de la ubicación.

    wsimport  -keep -Xnocompile  -wsdllocation /schema/10.0/MyService.wsdl  schema/10.0/MyService.wsdl
  2. 0

    No estoy seguro si esto ayuda, pero…

    De Aquí

    En el lado del cliente para consumir SSL habilitado el servicio Web:
    – en el Nuevo Cliente de Servicio Web asistente de bajo WSDL y la ubicación del Cliente especifique el archivo WSDL del Servicio Web mediante la configuración de URL de WSDL en forma
    de https://:8181//
    – a continuación, haga clic en el servicio web creado y elija Edición Web de los Atributos de Servicio y bajo Wsimport Opciones de corregir el wsdlLocation
    la opción de la siguiente forma:
    /META-INF/wsdl/_8181//.wsdl

    Cada vez que actualice la web servicio un nuevo archivo wsdl se carga
    a partir de la implementación de la aplicación y el archivo wsdl se carga como un
    de recursos definidos por el camino correcto (mencionado wsdlLocation opción
    valor).

    • Gracias. Me hizo ver que, y lo intentó, pero el webservice no podía ser creado a partir de un wsdl en el puerto 8081.
  3. 0

    Acaba de poner su archivo WSDL en su classpath, etc., src/main/resources/MyWsdl.xml y el uso de este conseguirlo:

    URL url = new URL(baseUrl, "classpath:MyWsdl.xml");

    También no te olvides de añadir esto en su clase de servicio que se extiende javax.xml.ws.Servicio:

    @WebServiceClient(name = "MyService", targetNamespace = "http://example.org/", wsdlLocation = "classpath:MyWsdl.xml")
    • ruta de clases no es un protocolo definido para la URL, creo. Puede ser que usted está usando spring framework?
  4. -1

    Asegúrese de que ha configurado su servicio web.
    Una manera de hacerlo es implementar una clase que extiende javax.ws.rs.core.Application. Es decir, añadir una clase que es similar al siguiente:

    import java.util.Set;
    import javax.ws.rs.core.Application;
    
    
    @javax.ws.rs.ApplicationPath("rest")
    public class ApplicationConfig extends Application {
    
        @Override
        public Set<Class<?>> getClasses() {
            Set<Class<?>> resources = new java.util.HashSet<Class<?>>();
            addRestResourceClasses(resources);
            return resources;
        }
    
    
        private void addRestResourceClasses(Set<Class<?>> resources) {
            resources.add(rest.HelloWorld.class);
            resources.add(rest.Search.class);
    
            //Here continue adding all the JAX-RS classes that you have
        }
    
    }
    • El ejemplo anterior se trata de JAX-RS Descanso webservices, mientras que la pregunta es acerca de SOAP WSDL webservices.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Recent Articles

Python «set» con duplicados/elementos repetidos

Hay una forma estándar de representar un "conjunto" que puede contener elementos duplicados. Como yo lo entiendo, un conjunto tiene exactamente un cero o...

Python: generador de expresión vs rendimiento

En Python, ¿hay alguna diferencia entre la creación de un generador de objetos a través de un generador de expresión versus el uso de...

Cómo exportar/importar la Masilla lista de sesiones?

Hay una manera de hacer esto? O tengo que tomar manualmente cada archivo de Registro? InformationsquelleAutor s.webbandit | 2012-10-23

no distingue mayúsculas de minúsculas coincidentes en xpath?

Por ejemplo, para el xml a continuación <CATALOG> <CD title="Empire Burlesque"/> <CD title="empire burlesque"/> <CD...