Абсолютная причина номер один проблем, возникающих на производстве, но не в разработке, - Окружающая среда .
Ваш производственный компьютер, скорее всего, настроен совсем иначе, чем ваш компьютер для разработки. Вы, возможно, разрабатываете свое Java-приложение на ПК под управлением Windows, например, при развертывании на сервере под управлением Linux.
Важно попытаться разработать те же приложения и библиотеки, которые вы будете развертывать в рабочей среде. Вот краткий контрольный список:
- Убедитесь, что версия JVM, которую вы используете в разработке, точно такая же, как на рабочей машине (
java -version
).
- Убедитесь, что сервер приложений (например, Tomcat, Resin) в рабочей версии имеет ту же версию, что и вы в разработке.
- Убедитесь, что версия базы данных, которую вы используете, в рабочей среде совпадает с версией.
- Убедитесь, что библиотеки (например, драйвер базы данных), установленные на рабочем компьютере, имеют те же версии, что и вы в разработке.
- Убедитесь, что у пользователя есть правильные права доступа на производственном сервере.
Конечно, вы не всегда можете получить все то же самое - многие серверы Linux теперь работают в 64-битной среде, хотя это не всегда (пока!) Со стандартными машинами для разработчиков. Но правило все еще остается в силе: если вы сможете максимально приблизить среду, вы минимизируете вероятность возникновения подобных проблем.
В идеале вы должны создать промежуточный сервер (который может быть виртуальной машиной, а не реальным сервером), который имеет (или максимально близко) ту же среду, что и рабочий сервер.
Если вы можете позволить себе промежуточный сервер, процесс развертывания должен выглядеть примерно так:
- Убедитесь, что приложение работает локально в разработке, и чтобы все модульные и функциональные тесты проходили в разработке.
- Развертывание на промежуточном сервере. Убедитесь, что все тесты пройдены.
- После успешного развертывания в производство