У меня возникли проблемы с потреблением .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. Там должно быть что-то я пропускаю, но я использовал тот же метод для вызова веб-службы, прежде чем и это сработало. Может кто-нибудь указать, в чем проблема с этим кодом?