У меня есть интерфейс мыла с методом «GetCustomer», который возвращает customerDto.Я хотел создать новый метод интерфейса для другого клиента с большим количеством информации, поэтому я создал второй метод «GetCustomerExtended», который возвращает customerExtendedDto с объектом customer в качестве родителя.Чтобы повторно использовать мой код, я привел дочерний элемент к родительскому, но, похоже, он не работает.Мыло не возвращает никакой информации.Вот мой код:
класс мыла:
public class ShopService : IShopService
{
public CustomerDto GetCustomer(int id)
{
return GetCustomerExtended(id);
}
public CustomerExtendedDto GetCustomerExtended(int id)
{
// Fill result
CustomerExtendedDto result = new CustomerExtendedDto();
result.Id = 1;
result.Name = "foo";
result.Surname = "bar";
return result;
}
}
[ServiceContract]
public interface IShopService
{
[OperationContract]
[FaultContract(typeof(InvalidParameterFaultMessage))]
[FaultContract(typeof(DataNotFoundFaultMessage))]
[FaultContract(typeof(InvalidOperationFaultMessage))]
[FaultContract(typeof(ApplicationLogicFaultMessage))]
[FaultContract(typeof(NotAvailableFaultMessage))]
[FaultContract(typeof(TimeoutFaultMessage))]
CustomerDto GetCustomer(int id);
[OperationContract]
[FaultContract(typeof(InvalidParameterFaultMessage))]
[FaultContract(typeof(DataNotFoundFaultMessage))]
[FaultContract(typeof(InvalidOperationFaultMessage))]
[FaultContract(typeof(ApplicationLogicFaultMessage))]
[FaultContract(typeof(NotAvailableFaultMessage))]
[FaultContract(typeof(TimeoutFaultMessage))]
CustomerExtendedDto GetCustomerExtended(int id);
}
Dto:
[DataContract]
public class CustomerDto
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
}
[DataContract]
public class CustomerExtendedDto : CustomerDto
{
[DataMember]
public strint Surname{ get; set; }
}
Метод работает, и он не вызывает никаких затрат, но ответвсегда пустоGetCustomerExtended работает отлично, GetCustomer пуст.SOAP UI, кажется, не получает никакой информации.Если я заполняю информацию о клиенте в «GetCustomer» следующим образом, она работает:
public CustomerDto GetCustomer(int id)
{
// Fill result
CustomerDto result = new CustomerDto();
result.Id = 1;
result.Name = "foo";
return result;
}
В чем здесь проблема?Как я могу привести это здесь правильно?
В журнале SoapUI написано: Четверг 11 11:29:42 CEST 2018: ОШИБКА: Исключение в запросе: java.net.SocketException: Сброс соединения Чт 11 октября 11:29:42 CEST 2018: ОШИБКА: произошла ошибка [Сброс подключения], подробности см. В журнале ошибок. Четверг, 11 11:29:42 CEST 2018: ИНФОРМАЦИЯ: Ошибка при получении ответа для [BasicHttpBinding_IShopService.GetCustomer: Request 1];java.net.SocketException: сброс соединения