Сгенерированный прокси не генерирует EndpointNotFound или аналогичный, когда веб-сервис недоступен - PullRequest
0 голосов
/ 09 марта 2012

У меня есть веб-сервис WCF, который работает без проблем. Теперь целью является создание прокси Java для доступа к этому веб-сервису. Я установил новейший Eclipse с расширением WTP и создал WebClient (прокси, заглушка и т. Д.). Я сделал вызов веб-службы, который успешно. С другой стороны, когда я закрывал веб-службу, вызов также был успешным. Что я делаю не так, прокси не генерирует исключение EndpointNotFoundException или RemoteException, когда служба недоступна?
Вот мой пример кода:

try
{
  IRemoteControlProxy rc = new IRemoteControlProxy("http://localhost:666/MyService");
  rc.InsertOrUpdate(0, new DtoObj());
}
catch (RemoteException e)
{
   System.out.println(e);
}
catch (ServiceException e)
{
  System.out.println(e);
}
System.out.println("No exception");

Я получаю только «Нет исключений», хотя вызов должен был быть неудачным. Я проверил URL-адрес по умолчанию в прокси-сервере, и по этому URL-адресу не работает веб-служба. Я дважды проверил URL-адрес в Internet Explorer. Я до сих пор не получил EndpointNotFoundException, почему? Могу ли я даже создать экземпляр нужного объекта (тот, который заканчивается на «прокси»)?
Обратите внимание, что если служба работает правильно, связь работает без проблем.

1 Ответ

0 голосов
/ 09 марта 2012

Ну, проблема здесь заключалась в том, что я добавил атрибут «IsOneWay» в определение метода сервиса.В этом случае сгенерированный прокси вызывает invokeOneWay (), который в основном срабатывает и забывает.Этот метод не выдает никаких исключений, когда цель недоступна.
Если я удаляю атрибут «IsOneWay» из определения метода службы, прокси-сервер вызывает invoke (), который вызывает правильное исключение, когда цель недоступна.

...