2014-12-04 3 views
0

У меня возникли проблемы с потреблением .NET Web-сервиса из простого приложения Java. Я тестирую только сейчас, если клиент веб-службы извлекает ожидаемые данные, и, по-видимому, это не так. Я создал клиент веб-службы в Eclipse, используя расположение wsdl, и он поступил правильно. Кроме того, я тестировал методы на стороне .NET, и они работают нормально. Поэтому проблема должна быть чем-то, что мне не хватает при использовании методов, созданных клиентом веб-службы. Я покажу код, который почти ridiculy прост:Использование веб-службы .net с java, не показывающей ожидаемых результатов

package com.consumeserviciodirectorio; 
import java.rmi.RemoteException; 
import org.apache.axis.AxisFault; 
import org.tempuri.*; 
import org.datacontract.schemas._2004._07.DAL_DirectorioCide_Modelo.*; 

public class Main { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
try { 

IDirectorioCIDEProxy d = new IDirectorioCIDEProxy(); 
String resp = d.jerry("ya"); 
System.out.println(resp); 
ModeloEmpleadoParaDirectorio[] lista = d.consulta("Paterno=|osorio|"); 
System.out.println(lista.length); 
for(ModeloEmpleadoParaDirectorio res:lista){ 
System.out.println("Nombre: "+res.getNombres()+" Apellidos: "+res.getPaterno()+" "+res.getMaterno()); 
System.out.println("Area: "+res.getAreaDescripcion()+" Email: "+res.getEmailCia()); 
} 
} 
catch (AxisFault e) { 
    System.out.println(e.getMessage()+ " "+e.getFaultReason()); 
} 
catch (RemoteException ex) { 
    System.out.println(ex.getMessage()); 
} 
    } 

} 

Кроме того, код в конце .NET походит так (это проверено и работает с параметром, как я передаю его выше):

public List<Modelo.ModeloEmpleadoParaDirectorio> Consulta(string Consulta) 
     { 
      List<Modelo.ModeloEmpleadoParaDirectorio> _result = new List<Modelo.ModeloEmpleadoParaDirectorio>(); 
      try 
      { 
       using (EvolutionCatalogosEntities modelo = new EvolutionCatalogosEntities()) 
       { 
        Consulta = Consulta.Replace("|", "\""); 
        _result = (from U in modelo.Empleado 
           join C in modelo.CatAreas on U.ActInstId equals C.IdCatArea 
           select new Modelo.ModeloEmpleadoParaDirectorio 
           { 
            Id = U.Id, 
            Nombres = U.Nombres, 
            Paterno = U.Paterno, 
            Materno = U.Materno, 
            AreaDescripcion = C.AreaDescripcion, 
            EmailCia = U.EmailCia 
           }).AsQueryable().Where(Consulta).ToList(); 
       } 
       return _result; 
      } 
      catch 
      { 
       return _result; 
      } 
     } 

Однако переменная называется lista не является пустой массив, независимо от того, что я делаю, это означает, что его длина равна 0. Там должно быть что-то я пропускаю, но я использовал тот же метод для вызова веб-службы, прежде чем и это сработало. Может кто-нибудь указать, в чем проблема с этим кодом?

ответ

0

Я нашел ответ, отлаживающий службу на конце .NET. Проблема заключалась в отсутствии строки подключения модели в файле web.config svc. Я знал, что код не является проблемой, ни на одной из подключаемых точек. Извините за отправку вопроса, который, вероятно, не был связан с реальной проблемой.

Смежные вопросы