Foros del Web » Programación para mayores de 30 ;) » .NET »

Error al consumir un web service

Estas en el tema de Error al consumir un web service en el foro de .NET en Foros del Web. Hola. Tengo que consumir un WS con Visual Basic .Net Luego de agregar las referencias de servicios, escribí este código: Código: Dim ws As New ...
  #1 (permalink)  
Antiguo 27/10/2015, 14:08
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años, 1 mes
Puntos: 3
Error al consumir un web service

Hola.

Tengo que consumir un WS con Visual Basic .Net

Luego de agregar las referencias de servicios, escribí este código:

Código:
        Dim ws As New nodum.FormsClient, Campos As New nodum.entradaTadmBitCosecha

        Campos.General.G1.NroBitacora = 366532
        Campos.General.G1.Fecha = #8/26/2015#
        Campos.General.G1.MesAnio = #9/1/2015#
        Campos.General.G1.Semana = 35
        Campos.General.G1.Quincena = 1
        Campos.General.G1.Turno = "D"
        Campos.General.G1.LugardeTrabajo = "FR15024"
        Campos.General.G1.Empresa = "'02"
        Campos.General.G1.NroCuadro = "7F162"
        Campos.General.G1.Operario = "TL000220"
        Campos.General.G1.Maquina = "FW12013"

        ws.procesarAlta(Campos)
El problema que tengo es que no me acepta ws.procesarAlta(Campos), sino que la sintaxis debe ser ws.procesarAlta(Campos()). O sea, debo colocar una función como parámetro y me termina dando error.

El error que me muestra es: "Error 1 Un valor de tipo 'WindowsApplication1.nodum.entradaTadmBitCosecha' no se puede convertir en '1-matriz dimensional de WindowsApplication1.nodum.entradaTadmBitCosecha'."

Investigando, encontré que al agregar las referencias de servicio en Reference.vb aparece:

Código:
        Public Function procesarAlta(ByVal procesarAlta1() As entradaTadmBitCosecha) As salidaResultado()
            Dim inValue As nodum.procesarAltaRequest = New nodum.procesarAltaRequest()
            inValue.procesarAlta = procesarAlta1
            Dim retVal As nodum.procesarAltaResponse = CType(Me, nodum.Forms).procesarAlta(inValue)
            Return retVal.procesarAltaReturn
        End Function
Probé consumir el WS con la aplicación SoapUI y funciona bien.

¿Está mal creado el WS o soy yo que estoy consumiendo mal?. Tal vez hay algo que configurar en Visual Basic .Net que yo no sé.

Desde ya, muchas gracias por las respuestas.

Saludos

Última edición por ci2000; 27/10/2015 a las 14:14
  #2 (permalink)  
Antiguo 27/10/2015, 15:57
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 12 años, 11 meses
Puntos: 17
Respuesta: Error al consumir un web service

Hola,

Mira puedes usar el programa Fiddler para consumir webservices, este pe permite diferenciar entre WS GET, POST, PUT, etc. De esta manera sabras si el ws esta bien construido y que es lo que realmente esta esperando el ws para ser invocado.

Saludos!!!
  #3 (permalink)  
Antiguo 27/10/2015, 17:25
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Error al consumir un web service

El Web Service espera un array (matriz) de la clase, la sintáxis NombreDeClase() en Visual Basic.Net es un array: https://msdn.microsoft.com/en-us/library/wak0wfyt.aspx

Esto es así porque así tiene que ser. Es decir, Visual Studio genera las clases, métodos y parámetros de las referencias a web services basándose en el WSDL que describe la interfaz del servicio. En otras palabras, el servicio web en sí mismo espera un array, y por lo tanto el método de tu clase generada por Visual Studio también espera un array.

Esto significa, a su vez, que puedes mandar mas de 1 elemento dentro de ese array, y asumo que el servicio deberia procesarlos todos al mismo tiempo.

Agrega esto a tu codigo:

Código VB.Net:
Ver original
  1. dim matriz = new nodum.entradaTadmBitCosecha() { Campos }
  2. ws.ProcesarAlta(matriz)

Ignora el fiddler que te sugirieron arriba. Solo lo usas en caso de que por algun motivo no puedas agregar la referencia al servicio en Visual Studio, que no es tu caso.
  #4 (permalink)  
Antiguo 27/10/2015, 18:26
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años, 1 mes
Puntos: 3
Respuesta: Error al consumir un web service

agleiva, gracias por responder. Ahora ya no me da error.

Ahora me da error en:

Código:
Campos.General.G1.NroBitacora = 366532
Probé instanciar así:
Código:
Campos = New nodum.entradaTadmBitCosecha()
pero tampoco funciona.

El mensaje es: "No se controló NullReferenceException".

Según lo que encontré googleando es porque Campos.General.G1.NroBitacora tiene valor nulo, pero justamente se lo estoy asignando.

Este es el código de entrada que utilizo con el SoapUI y funciona bien (tal vez sirve para determinar como debo dimensionar las variables)
Código:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tad="http://10.0.0.9:8080/soap/Nodum_Testing/schemas/forms/v1.1/TadmBitCosecha">
   <soapenv:Header/>
   <soapenv:Body>
      <tad:procesarAlta>
         <!--1 or more repetitions:-->
         <tad:TadmBitCosecha>
            <!--You may enter the following 2 items in any order-->
            <tad:General>
               <tad:G1>
                  <!--You may enter the following 66 items in any order-->
                  <tad:NroBitacora>371902</tad:NroBitacora>
                  <tad:Fecha>2015-10-23</tad:Fecha>
                  <tad:MesAnio>Sep-15</tad:MesAnio>
                  <tad:Semana>35</tad:Semana>
                  <tad:Quincena>1</tad:Quincena>
                  <tad:Turno>N</tad:Turno>
                  <tad:LugardeTrabajo>FR15003</tad:LugardeTrabajo>
                  <tad:Empresa>01</tad:Empresa>
                  <tad:NroCuadro>7F320</tad:NroCuadro>
                  <tad:Operario>TL000197</tad:Operario>
                  <tad:Maquina>FW12001</tad:Maquina>
                  <tad:HorometMaqIni>0</tad:HorometMaqIni>
                  <tad:HorometMaqFin>0</tad:HorometMaqFin>
                  <tad:HorasMaquina>0</tad:HorasMaquina>
                  <tad:HrsMaquinaProg>8.4</tad:HrsMaquinaProg>
                  <!--Optional:-->
                  <tad:HorometGruaIni>0</tad:HorometGruaIni>
                  <!--Optional:-->
                  <tad:HorometGruaFin>0</tad:HorometGruaFin>
                  <!--Optional:-->
                  <tad:HorasGrua>0</tad:HorasGrua>
                  <!--Optional:-->
                  <tad:GasoilInicial>0</tad:GasoilInicial>
                  <!--Optional:-->
                  <tad:GasoilFinal>0</tad:GasoilFinal>
                  <!--Optional:-->
                  <tad:ConsumoGasoil>0</tad:ConsumoGasoil>
                  <!--Optional:-->
                  <tad:ConsumoSurtida>0</tad:ConsumoSurtida>
                  <!--Optional:-->
                  <tad:PromedioGasoil>0</tad:PromedioGasoil>
                  <!--Optional:-->
                  <tad:PromedioGasoilSurtido>0</tad:PromedioGasoilSurtido>
                  <!--Optional:-->
                  <tad:AceiteMotor>0</tad:AceiteMotor>
                  <!--Optional:-->
                  <tad:Lubeco>0</tad:Lubeco>
                  <!--Optional:-->
                  <tad:Hidraulico>0</tad:Hidraulico>
                  <!--Optional:-->
                  <tad:Valvulina>0</tad:Valvulina>
                  <!--Optional:-->
                  <tad:AguadeRadiador>0</tad:AguadeRadiador>
                  <!--Optional:-->
                  <tad:Mangueras>0</tad:Mangueras>
                  <!--Optional:-->
                  <tad:Cantidad>0</tad:Cantidad>
                  <!--Optional:-->
                  <tad:Espadas>0</tad:Espadas>
                  <!--Optional:-->
                  <tad:CadenasDientes>0</tad:CadenasDientes>
                  <!--Optional:-->
                  <tad:MecanicoAyudante></tad:MecanicoAyudante>
                  <!--Optional:-->
                  <tad:CantArboles>0</tad:CantArboles>
                  <!--Optional:-->
                  <tad:M3TurnoHV>0</tad:M3TurnoHV>
                  <!--Optional:-->
                  <tad:BitacoraPasadapor></tad:BitacoraPasadapor>
                  <!--Optional:-->
                  <tad:Observaciones>0</tad:Observaciones>
                  <!--Optional:-->
                  <tad:MPProduccion>0</tad:MPProduccion>
                  <!--Optional:-->
                  <tad:MPIndispMecanica1_1>0</tad:MPIndispMecanica1_1>
                  <!--Optional:-->
                  <tad:MPMantDiarioProg2_1>0</tad:MPMantDiarioProg2_1>
                  <!--Optional:-->
                  <tad:MPIndispOperacional3_1>0</tad:MPIndispOperacional3_1>
                  <!--Optional:-->
                  <tad:MPTraslMecanico4_1>0</tad:MPTraslMecanico4_1>
                  <!--Optional:-->
                  <tad:MPTrasManten4_2>0</tad:MPTrasManten4_2>
                  <!--Optional:-->
                  <tad:MPTrasOperacional4_3>0</tad:MPTrasOperacional4_3>
                  <!--Optional:-->
                  <tad:MADescansoOperador>0</tad:MADescansoOperador>
                  <!--Optional:-->
                  <tad:MAIndispMecanic1_0>0</tad:MAIndispMecanic1_0>
                  <!--Optional:-->
                  <tad:MAMantDiarioProg2_0>0</tad:MAMantDiarioProg2_0>
                  <!--Optional:-->
                  <tad:MAIndispOperacional3_0>0</tad:MAIndispOperacional3_0>
                  <!--Optional:-->
                  <tad:DistanciaRecorrida>0</tad:DistanciaRecorrida>
                  <!--Optional:-->
                  <tad:CP2_4>0</tad:CP2_4>
                  <!--Optional:-->
                  <tad:CP3_5>0</tad:CP3_5>
                  <!--Optional:-->
                  <tad:CP4_8>0</tad:CP4_8>
                  <!--Optional:-->
                  <tad:CP6_5>0</tad:CP6_5>
                  <!--Optional:-->
                  <tad:CP7_2>0</tad:CP7_2>
                  <!--Optional:-->
                  <tad:CAEXP2_3>0</tad:CAEXP2_3>
                  <!--Optional:-->
                  <tad:CAEXP2_6>0</tad:CAEXP2_6>
                  <!--Optional:-->
                  <tad:CAEXP2_65>0</tad:CAEXP2_65>
                  <!--Optional:-->
                  <tad:CAEXP3_3>0</tad:CAEXP3_3>
                  <!--Optional:-->
                  <tad:CAEXP4_5>0</tad:CAEXP4_5>
                  <!--Optional:-->
                  <tad:CAEXP5>0</tad:CAEXP5>
                  <!--Optional:-->
                  <tad:CAEXP5_1>0</tad:CAEXP5_1>
                  <!--Optional:-->
                  <tad:CAEXP5_3>0</tad:CAEXP5_3>
                  <!--Optional:-->
                  <tad:CAEXP5_45>0</tad:CAEXP5_45>
                  <!--Optional:-->
                  <tad:CAEXP5_5>0</tad:CAEXP5_5>
                  <!--Optional:-->
                  <tad:CAEXP5_8>0</tad:CAEXP5_8>
               </tad:G1>
            </tad:General>
            <tad:Continuacion>
               <tad:C1>
                  <!--You may enter the following 46 items in any order-->
                  <!--Optional:-->
                  <tad:CAM_P2_4>0</tad:CAM_P2_4>
                  <!--Optional:-->
                  <tad:CAM_P3_5>0</tad:CAM_P3_5>
                  <!--Optional:-->
                  <tad:CAM_P4_8>0</tad:CAM_P4_8>
                  <!--Optional:-->
                  <tad:CAM_P6_5>0</tad:CAM_P6_5>
                  <!--Optional:-->
                  <tad:CAM_P7_2>0</tad:CAM_P7_2>
                  <!--Optional:-->
                  <tad:CAM_A_EXP2_3>0</tad:CAM_A_EXP2_3>
                  <!--Optional:-->
                  <tad:CAM_A_EXP2_6>0</tad:CAM_A_EXP2_6>
                  <!--Optional:-->
                  <tad:CAM_A_EXP2_65>0</tad:CAM_A_EXP2_65>
                  <!--Optional:-->
                  <tad:CAM_A_EXP3_3>0</tad:CAM_A_EXP3_3>
                  <!--Optional:-->
                  <tad:CAM_A_EXP4_5>0</tad:CAM_A_EXP4_5>
                  <!--Optional:-->
                  <tad:CAM_A_EXP5>0</tad:CAM_A_EXP5>
                  <!--Optional:-->
                  <tad:CAM_A_EXP5_1>0</tad:CAM_A_EXP5_1>
                  <!--Optional:-->
                  <tad:CAM_A_EXP5_3>0</tad:CAM_A_EXP5_3>
                  <!--Optional:-->
                  <tad:CAM_A_EXP5_45>0</tad:CAM_A_EXP5_45>
                  <!--Optional:-->
                  <tad:CAM_A_EXP5_5>0</tad:CAM_A_EXP5_5>
                  <!--Optional:-->
                  <tad:CAM_A_EXP5_8>0</tad:CAM_A_EXP5_8>
                  <!--Optional:-->
                  <tad:SKIDERHa_Despejado>0</tad:SKIDERHa_Despejado>
                  <!--Optional:-->
                  <tad:SKIDERHa_Laboreo>0</tad:SKIDERHa_Laboreo>
                  <!--Optional:-->
                  <tad:SKIDERHa_D_L>0</tad:SKIDERHa_D_L>
                  <!--Optional:-->
                  <tad:M3_Arb_Orden>0</tad:M3_Arb_Orden>
                  <!--Optional:-->
                  <tad:CarrosTotales>0</tad:CarrosTotales>
                  <!--Optional:-->
                  <tad:mcsMensualesObjetivo>0</tad:mcsMensualesObjetivo>
                  <!--Optional:-->
                  <tad:TurnosReales>0</tad:TurnosReales>
                  <!--Optional:-->
                  <tad:MetrosCubicossobreHorasObjetivo>0</tad:MetrosCubicossobreHorasObjetivo>
                  <!--Optional:-->
                  <tad:CodigoTarea>0</tad:CodigoTarea>
                  <!--Optional:-->
                  <tad:CodigoCliente>MDP</tad:CodigoCliente>
                  <!--Optional:-->
                  <tad:Cultivo>0</tad:Cultivo>
                  <!--Optional:-->
                  <tad:CantidaddeProductos>1</tad:CantidaddeProductos>
                  <tad:NrodeLinea_sistema>1</tad:NrodeLinea_sistema>
               </tad:C1>
            </tad:Continuacion>
         </tad:TadmBitCosecha>
      </tad:procesarAlta>
   </soapenv:Body>
</soapenv:Envelope>
Saludos

Última edición por ci2000; 28/10/2015 a las 04:29

Etiquetas: consumir, net, service, vb, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:31.