2011-06-05 21 views
19

He probado mis servicios web (wsdl/soap) con soapui. y tengo los errores: http/log: error 400 MALA SOLICITUD.Prueba WSDL/SOAP Con soapui

¿Cuál es el error por favor con mi wsdl?

de error/registro:

un Jun 05 14:10:37 CEST 2011:ERROR:javax.wsdl.WSDLException: WSDLException (at /html): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'. 
    javax.wsdl.WSDLException: WSDLException (at /html): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'. 
    at com.ibm.wsdl.xml.WSDLReaderImpl.checkElementName(Unknown Source) 
    at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source) 
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
    at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlInterfaceDefinition.load(WsdlInterfaceDefinition.java:48) 
    at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext.loadDefinition(WsdlContext.java:66) 
    at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext.loadDefinition(WsdlContext.java:30) 
    at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext.cacheDefinition(AbstractDefinitionContext.java:264) 
    at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext.access$400(AbstractDefinitionContext.java:44) 
    at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:230) 
    at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46) 
    at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:140) 
    at java.lang.Thread.run(Thread.java:637) 
+0

¿Cómo se ve tu wsdl cuando intentas abrirlo en un navegador? –

+0

cuando lo abro int mozilla, me muestra el xml. – samir

+0

¿Podría actualizar su pregunta con el xml? –

Respuesta

31

definitions es un elemento raíz del WSDL lo que parece que no va a cargar WSDL.

Editar:

lo probé y parece que todo el problema es con el servidor web. Su servidor web devuelve WSDL al navegador pero no lo devuelve a ninguna herramienta porque estas herramientas utilizan solicitudes HTTP muy minimalistas sin muchos encabezados HTTP. Uno de los encabezados faltantes es Accept. Una vez que este encabezado no está incluido en la solicitud, su servidor lanza la solicitud HTTP 400 Bad.

El método más fácil para continuar es abrir WSDL en el navegador, guardar el wsdl en un archivo e importar ese archivo a soapUI en lugar de WSDL desde la URL.

+0

Por favor, ¿me pueden ayudar? son 5 días i bandeja para arreglar el problema. No he entendido tu respuesta, lo siento. ¿Cómo puedo probar mi wsdl? ¿El error de registro dice que mis servicios web no funcionan? gracias por su respuesta – samir

+0

¿Puede agregar WSDL al proyecto soapUI? http://www.soapui.org/Getting-Started/your-first-soapui-project.html –

+0

No, cuando lo agrego, me muestra la "definición de carga desde url", toma esto por varios minutos y me muestra "com.ev ...: Error al importar wsdl. ¿significa esto que mi wsdl no funciona? – samir

0

Una posibilidad probable es que su navegador llegue a su servicio web a través de un proxy, y SoapUI no está configurado para usar ese proxy. Por ejemplo, trabajo en un entorno corporativo y, aunque mi IE y FireFox pueden acceder a sitios web externos, mi SoapUI solo puede acceder a servicios web internos.

La solución más fácil es simplemente abrir el WSDL en un navegador, guardarlo en un archivo .xml y basar su proyecto SoapUI en eso. Sin embargo, esto no funcionará si su WSDL depende de XSD externos a los que no puede acceder.

4

Otra posibilidad es que necesite agregar? Wsdl al final de su url de servicio para SoapUI. Eso me dio porque estoy acostumbrado a WCFClient que no lo necesitaba.

+0

Esto realmente me ayudó a usarlo con un cliente CXF. – Alfergon

5

Puede intentar abrir el wsdl en el navegador web y guardarlo con la extensión .wsdl. Y configure el WSDL en el proyecto de interfaz de usuario SOAP en este archivo .wsdl. Esto realmente funciona.

3
  • sí, primero asegúrese de que añade "? Wsdl" a su enlace "http ...... whatever.svc".
    • Eso no solucionó mi problema, sin embargo. Tuve que crear un nuevo proyecto WCF desde el principio y copiar el código manualmente. Eso lo solucionó Buena suerte.

Y lo más importante !!!

Cuando cambia un espacio de nombres en su código, ¡también asegúrese de cambiarlo en web.config!

1

Me enfrenté a la misma excepción al intentar probar mis servicios web desplegados en WSO2 ESB.

WSO2 generó tanto wsdl como wsdl2. Traté de pasar una URL wsdl2 y obtuve la excepción anterior. Google me enseñó rápidamente que una de las diferencias entre wsdl1.1 y wsdl2.0 es reemplazar el elemento 'definitions' con 'description'. Además, descubrí que SoapUI does not support wsdl2.

Por lo tanto, para mí, la solución fue utilizar wsdl1 url en lugar de wsdl2.