使用带有java的.net Web服务不显示预期结果

时间:2014-12-04 18:10:00

标签: java c# web-services wcf

我从简单的Java应用程序中使用.NET Web服务时遇到问题。如果Web服务客户端获取预期的数据,我现在只测试,显然它没有。我使用wsdl位置在Eclipse中创建了一个Web服务客户端,它正确。此外,我已经在.NET方面测试了这些方法,并且它们正常工作。因此,在使用Web服务客户端生成的方法时,问题必定是我所缺少的。我将展示几乎非常简单的代码:

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.必须有一些我错过但我已经使用过的东西调用Web服务之前和它工作的方法相同。有人可以指出该代码的问题是什么?

1 个答案:

答案 0 :(得分:0)

我找到了在.NET端调试服务的答案。问题是svc的web.config中缺少模型的连接字符串。在连接的任何一点上,我都知道代码不是问题。很抱歉发布可能与实际问题无关的问题。