Вызов веб-службы Java / AXIS из .NET: проблема «return null»

Я искал эту проблему через все Google, stackoverflow и многое другое. И я нашел много связанных ответов на это, но не настоящее решение.

Я использую службу Axis из клиента .NET, но возвращаемое значение всегда равно нулю, независимо от того, какие параметры я отправляю, всегда равно нулю.

Я начал искать и попытался использовать его из SOAPUI , и это сработало !.

Первой моей мыслью было, что .NET делает что-то не так, я искал и искал и обнаружил, что есть некоторые проблемы с пространствами имен.

Связанное сообщение здесь

Итак, после этого я попытался использовать Сервис через Service Reference, Web Reference, создав прокси с WSDL.EXE (он был создан довольно хорошо!) И поискал все пространства имен , но все в порядке .. Я внес некоторые изменения в пространство имен, но ничего.

Затем я обнаружил, что проблематичными являются не только пространства имен, но и массивы; и на самом деле служба возвращает примерно так.


   
      
         
            0036887
            
            00110
            00110
            
            000270
            NOMBRE PENDIENTE
            
            2011-02-15
            2011-02-15
            2012-02-15
            03
            CARLOS ZARATE JIMENEZ
            ZAJC720213K98
            0449626251463
            1
            003
            237.84
            237.84
            951.36
            
            .00
            
            
            0036887
            0000000
            
            
            
               
                  CARLOS ZARATE JIMENEZ
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  1972-02-13
                  1
                  1
                  0
                  
                  
                     
                        00150
                        
                        SEGURO DE MUERTE ACCIDENTAL
                        250,000
                        .00
                        820.00
                        039
                        
                        
                        250,000
                        .00
                     
                     
                        00150
                        
                        SEGURO DE MUERTE ACCIDENTAL
                        250,000
                        .00
                        95.00
                        039
                        
                        
                        250,000
                        .00
                     
                     
                        00150
                        
                        SEGURO DE MUERTE ACCIDENTAL
                        500
                        .00
                        36.36
                        039
                        
                        
                        500
                        .00
                     
                  
                  
               
            
            
            
               
                  5183648
                  2011-02-15
                  2011-02-26
                  2011-02-26
                  00
                  GENERADO
                  000000275.89
                  .00
                  .00
                  2011-02-15
                  2011-05-15
                  
                  
                  
               
               
                  5183649
                  2011-02-15
                  2011-02-15
                  1900-00-00
                  00
                  GENERADO
                  000000275.89
                  .00
                  .00
                  2011-05-15
                  2011-08-15
                  
                  
                  
               
               
                  5183650
                  2011-02-15
                  2011-02-15
                  1900-00-00
                  00
                  GENERADO
                  000000275.89
                  .00
                  .00
                  2011-08-15
                  2011-11-15
                  
                  
                  
               
               
                  5183651
                  2011-02-15
                  2011-02-15
                  1900-00-00
                  00
                  GENERADO
                  000000275.89
                  .00
                  .00
                  2011-11-15
                  2012-02-15
                  
                  
                  
               
            
            
            
         
      
   

(я получил этот пример из SOAPUI).

Соответствующий пост здесь

Я пробовал также это .

И получил еще одну возможную проблему от здесь с перечисленными элементами массива с именем «item», как вы можете видеть в упомянутом выше WebServiceResponse, они перечислены таким образом.Так что мне все казалось, что это проблема десериализации из C #. И поискав, я нашел половину решения всего этого.

Реальность заключалась в том, что на самом деле .NET получил довольно хороший ответ, все, что у него было, - это проблема с этапом десериализации, возможно, для всех возможных причин, упомянутых выше (несколько пространств имен, массивы, элементы массива, названные как «item»).

http://www.codeproject.com/KB/webservices/Java_WS_NET.aspx

Я переопределил метод в моем прокси следующим образом:

protected override System.Net.WebResponse GetWebResponse(System.Net.WebRequest request)
    {
        WebResponse wr = base.GetWebResponse(request);
        StreamReader sr = new StreamReader(wr.GetResponseStream());
        //throw new Exception(sr.ReadToEnd());
        return wr ;      
    }

Я вызвал исключение, чтобы увидеть, был ли получен результат службы и на самом деле тут же!

Итак, в конце концов, я не знаю, есть ли исправление, пакет обновления, кто-то нашел решение или что-нибудь вроде КАК Я МОГУ ПРАВИЛЬНО ПРАВИЛЬНО ДЕЛЕАЛИЗИРОВАТЬ WebResponse. Или как правильно использовать эту службу оси, я думаю, что лучший подход к этому - просто сериализовать ответ, правильно переопределяя метод, потому что это похоже на ошибку .NET, я думаю, что у него проблемы с этим, потому что у всего массива есть элемент " в теме.

Заранее благодарим за то, что прочитали этот пост.

Я действительно ценю любую помощь !.

Еще раз спасибо !.

10
задан Community 23 May 2017 в 12:09
поделиться