Мы заменили наше RMI remoting на Spring Remoting HTTP invoker, после того как Oracle фактически устарела RMI, удалив туннелирование из него.
При постановке все работает, как и раньше, но мы должны убедиться, что мы правильно реагируем на исключения после их развертывания в Интернете.
Наш старый код RMI ожидал и имел дело со следующими Исключениями (не обязательно в этом порядке), в дополнение к нашим исключениям:
- java.io.IOException
- java.rmi.ConnectException
- java.rmi.UnmarshalException
- java.rmi.ConnectIOException
- java.net.ConnectException
- java.rmi.NotBoundException
- java.rmi.UnknownHostException
- java.rmi.RemoteException
- java.rmi.NoSuchObjectException
Как видите, это много "сетевых" исключений, и мы реагировали на каждое из них по отдельности, иногда даже проверяя текст сообщения, прежде чем решить, как реагировать. Главный вопрос, на который нужно ответить: стоит ли нам пытаться снова? И если да, нужно ли нам сначала немного подождать? А если нет, что мы скажем пользователю?
У меня вопрос: есть или может кто-то составить список всех исключений, которые мы можем ожидать от Spring Remoting HTTP invoker, чтобы мы могли выяснить, когда это произойдет и почему, и попытаться написать соответствующую «реакцию»? в нашем обработчике исключений.