none
Consumir Servicio Web Java RRS feed

  • Pregunta

  • Hola, estoy desarrollando un proyecto en ASP.NET MVC VS2013 en donde tengo que consumir un servicio desarrollado en Java, al agregar la referencia del servicio, lo hice mediante service reference. Es esto correcto o debo hacerlo por web reference?

    Como lo tengo agregado (service reference), puedo consultar correctamente el servicio y obtener la respuesta. Mi duda surge tambien por existe un campo string que debo enviar a un metodo del servicio y al colocar por ejemplo este valor: TRN_BK, me lanza una excepcion:

    Fault occurred while processing.

    Server stack trace: 
       en System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
       en System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       en System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       en System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

    Exception rethrown at [0]: 
       en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       en Proforma.Business.WSCalculator.CalculatorService.getEstimatedTransitCosts(getEstimatedTransitCosts request)
       en Proforma.Business.WSCalculator.CalculatorServiceClient.Proforma.Business.WSCalculator.CalculatorService.getEstimatedTransitCosts(getEstimatedTransitCosts request) en c:\Users\Documents\Visual Studio 2013\Projects\Proforma\Proforma.Business\Service References\WSCalculator\Reference.cs:línea 435
       en Proforma.Business.WSCalculator.CalculatorServiceClient.getEstimatedTransitCosts(String Service_Type, Int32 SinSeq, String VesselType, Double Itc69Length, Double Itc69Beam, Int32 Itc69GrossTonnage, Double Length, Int32 MaxTeuAllowed, Int32 MaxDisplacement, String CargoCondition, Int32 TeuAboveDeck, Int32 MaxPaxCapacity, Int32 SldDisplacement, Double TotalMouldedVolume, Double Beam, Double MaxArrivalDraft, Boolean IncludeStandards, calculatorExtraServiceBean[] CalculatorextraServiceList, Int32 FullTransitTeus, Int32 EmptyTransitTeus) en c:\Users\draw5_000\Documents\Visual Studio 2013\Projects\Proforma\Proforma.Business\Service References\WSCalculator\Reference.cs:línea 480
       en Proforma.Business.EstimatedServices.EstimatedTransitCosts(List`1 datalist) en c:\Users\Documents\Visual Studio 2013\Projects\Proforma\Proforma.Business\EstimatedServices.cs:línea 29

    Sin embargo al colocar el string con este valor: TR_NBK o TRNBK no lanza ninguna excepcion :S.

    Agradeceria me pudieran orientar.

    Saludos


    David Robinson

    miércoles, 19 de agosto de 2015 21:18

Respuestas

  • >>El valor que debo pasar como string seria "TRN_BK" al pasarlo me da error sin embargo como menciono al pasar un string parecido como "TR_NBK" no me da error.

    no sera que cuando pasa "TR_NBK" no falla porque no hay registros que devolver

    en cambio cuando asignas "TRN_BK" si lo hayy alli el servicio encuantra un problema

    conasejaria contatar con el creador del servicio web porque seguramente este tenga un error

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta draw507 jueves, 20 de agosto de 2015 15:57
    jueves, 20 de agosto de 2015 15:51

Todas las respuestas

  • hola

    >>Es esto correcto o debo hacerlo por web reference?

    si el servicio en java expone un wsdl que pueda usar para crear el proxy entonces es correcto

    >>Mi duda surge tambien por existe un campo string que debo enviar a un metodo del servicio y al colocar por ejemplo este valor: TRN_BK,

    que seria este TRN_BK ? es una variable string

    consultaste con el creado del servicio para ver si este podria tener algun bug ?

    podrias usar el SOAPUI

    para validar que el servicvio web funcione

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 19 de agosto de 2015 21:56
  • TRN_BK seria un parametro tipo string que le envio al metodo del WS pero desde ASP.NET me envia error pero desde el SOAP UI no sucede. He probado con estos valores TR_NBK o TRNBK y no hay problema. Solo me sucede con el subrayado en esa posicion TRN_BK

    David Robinson


    • Editado draw507 jueves, 20 de agosto de 2015 13:19
    jueves, 20 de agosto de 2015 13:12
  • hola

    >>He probado con estos valores TR_NBK o TRNBK y no hay problema.

    pero que serian TR_NBK y TRNBK ? tambien son variables

    si todas son variables que valor contienen ? quizas el error sea por el dato que envias

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 20 de agosto de 2015 13:56
  • Todos serian valores string. El valor que debo pasar como string seria "TRN_BK" al pasarlo me da error sin embargo como menciono al pasar un string parecido como "TR_NBK" no me da error. Y es alli donde no se a que se debe.

    El parametro es un string.

    Desde el soapUI envio esto:

    <CalculatorextraServiceList>
                <!--Optional:-->
                <serviceId>TRN_BK</serviceId>
                <!--Optional:-->
                <serviceQty>1</serviceQty>
    </CalculatorextraServiceList>

    Desde ASP.NET, hago esto:

    calculatorExtraServiceBean[] extraServiceBean = extraServiceList
                        .Select(item => new WSCalculator.calculatorExtraServiceBean()
                        {
                            serviceId = item.serviceId,
                            serviceQty = item.serviceQty
                        }).ToArray();

    CalculatorServiceClient serviceClient = new WSCalculator.CalculatorServiceClient();

    //Aqui es donde sucede el error

    estimateTransitCosts = serviceClient.getEstimatedTransitCosts(extraServiceBean); 


    David Robinson

    jueves, 20 de agosto de 2015 14:47
  • >>El valor que debo pasar como string seria "TRN_BK" al pasarlo me da error sin embargo como menciono al pasar un string parecido como "TR_NBK" no me da error.

    no sera que cuando pasa "TR_NBK" no falla porque no hay registros que devolver

    en cambio cuando asignas "TRN_BK" si lo hayy alli el servicio encuantra un problema

    conasejaria contatar con el creador del servicio web porque seguramente este tenga un error

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta draw507 jueves, 20 de agosto de 2015 15:57
    jueves, 20 de agosto de 2015 15:51
  • Si, me puse en contacto y al parecer habia que asignarle un valor en true a otro parametro. Gracias 

    David Robinson

    jueves, 20 de agosto de 2015 15:57