Иногда SpringSource dm Server не может распаковать действительный файл ZIP
При развертывании моего проекта на SpringSource dm Server время от времени JAR не удается развернуть со следующим сообщением:
/mnt/myproject/springsource/work/com.springsource.server.deployer/packed/my.project.0.1.10.M.jar' cannot be unpacked.
java.util.zip.ZipException: error in opening zip file
В проекте 5 файлов.war. Если один из них дает сбой, он всегда один и тот же (который также является последним, который будет скопирован в каталог раскладки). Однако обычно все 5 развертываются без проблем. Это одинаковый набор файлов во всех экземплярах, взятых из репозитория maven, только что развернутых на новых экземплярах сервера.
Файл, который терпит неудачу, может быть легко открыт 7-Zip. Если я останавливаю Spring, очищаю каталог раскладки, запускаю Spring и снова копирую файлы.war в раскладку, это обычно будет работать.
Обычный процесс развертывания:
- Начать весну
- Подождите, пока не появится сообщение Открыть для бизнеса с профилем "Интернет"
- Скопируйте все 5 проектов с задержкой в 2 секунды между каждой копией (по сценарию).
Подобные проблемы не кажутся java-util-zip-zipexception-error-in-открытие-zip-файл и jboss5-не может быть развернут из-за java-util-zip-zipexception-error-in-открытие-zip-fil применять.
1 ответ
Вы не говорите, какую версию dm Server вы используете, поэтому я бы порекомендовал обновить ее до 2.0.x, чтобы получить исправления, если вы еще этого не сделали. Вы также можете перейти на Eclipse Virgo, который является продолжением проекта dm Server.
Я предполагаю, что эвристика в dm Server для определения того, когда копирование файла в пикап закончилось, возможно, из-за медленной или беспорядочной операции копирования. Что-нибудь необычное на вашем диске, такое как шифрование или удаленное монтирование, может помешать операции копирования?
Один из способов исключить эвристику - разместить файлы в каталоге раскладки, когда dm Server не запущен, и затем запустить dm Server, когда операция копирования определенно завершена. Если проблема воспроизводится, возможно, проблема в используемой вами JRE.