Pregunta

¿Cómo hacer referencia a los archivos WSDL del registro al definir un nuevo servicio proxy?Estoy usando WSO2 ESB.

Q1: ¿Puedo usar el elemento localentry para definir el WSDL en mi servicio proxy?Por ejemplo:

localEntry key="my_wsdl" src="file:/wsdl/MyServiceSOAP.wsdl"

Siempre que haya utilizado previamente Gestion Manager Console > agregue la colección > Cree "WSDL", y Agregar recurso > MyServicesOap.wsdl. Tengo un problema con el valor "SRC", ambos

"/wsdl/MyServiceSOAP.wsdl" 
y
"wsdl/MyServiceSOAP.wsdl" 
No funcionan.Sigo la documentación pero no se muestrancómo subir WSDLS en el registro.

Q2: ¿Qué sucede si MyServicesOap.wsdl importa MyService.wsdl?Necesito usar agregar recurso para myservice.wsdl, ¡pero necesito hacer algo más para que la compilación proxy?

¿Fue útil?

Solución

Creo que te refieres al registro aquí. El espacio de registro en cada producto contiene tres particiones principales.

  • local
  • Configuración
  • gobernanza

espacio de registro en el ESB El Registro de Configuración contiene una configuración específica del producto que se puede compartir en múltiples instancias del mismo producto (un grupo de nodos ESB, por ejemplo). Para que pueda crear la colección WSDL dentro del Registro de configuración y consultelo como ...

"conf:/wsdl/MyServiceSOAP.wsdl"

Al cargar los recursos para el registro, puede elegirlos fácilmente al crear el servicio proxy también. ingrese la descripción de la imagen aquí

Creo que puede referirse a los recursos como "Archivo: /wsdl/myservicesoap.wsdl" solo cuando están dentro de un directorio llamado 'WSDL' en el sistema de archivos local. Por cierto, sobre los mensajes de error. Si mira los registros del servidor de ESB, verá el siguiente error cuando intenta actualizar el proxy que se refiere a un archivo no existente.

Caused by: java.io.FileNotFoundException: ./wsdl/MyServiceSOAP.wsdl (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.io.FileInputStream.<init>(FileInputStream.java:79)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
    at org.apache.synapse.config.SynapseConfigUtils.getObject(SynapseConfigUtils.java:197)
    ... 46 more

Otros consejos

Encontré una solución simple para ello de un blog: En mi escenario, tuve un WSDL, que importó otro WSDL que importó un XSD.Las estructuras reales estaban en el segundo WSDL.

Importar línea en el WSDL original:

    <wsdl:import namespace="http://www.somedomain.com/interface/v1_0" location="service_interface_1_0.wsdl"/>

Línea de importación en el segundo WSDL:

    <xsd:import namespace="http://www.somedomain.com/data/v1_0" schemaLocation="data_types_1_0.xsd"/>

XML requerido en el proxy:

    <publishWSDL key="file_required_service_1_0.wsdl">
  <resource location="service_interface_1_0.wsdl"
            key="file_service_interface_1_0.wsdl"/>
  <resource location="data_types_1_0.xsd"
            key="file_data_types_1_0.xsd"/>

Donde tengo entradas locales para "file_required_service_1_0.wsdl", etc. llamadas entradas locales que contienen los archivos WSDL y XSD originales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top