Сервер SpringSource dm иногда не может распаковать действительный файл ZIP - PullRequest
0 голосов
/ 16 ноября 2009

При развертывании моего проекта на 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 в раскладку, это обычно будет работать.

Обычный процесс развертывания:

  • Начало весны
  • Подождите, пока не появится сообщение Открыть для бизнеса с профилем "web"
  • Копировать все 5 проектов с задержкой в ​​2 секунды между каждой копией (по сценарию).

Похожие проблемы java-util-zip-zipexception-error-in-открытие-zip-файл и jboss5-не удается развернуть из-за java-util-zip-zipexception- ошибка в открытии zip-fil , кажется, не применяется.

1 Ответ

1 голос
/ 10 декабря 2010

Вы не говорите, какую версию dm Server вы используете, поэтому я бы порекомендовал обновить ее до 2.0.x, чтобы получить исправления, если вы еще этого не сделали. Вы также можете перейти на Eclipse Virgo, который является продолжением проекта dm Server.

Я предполагаю, что эвристика в dm Server для определения того, когда копирование файла в пикап закончилось, возможно, из-за медленной или беспорядочной операции копирования. Что-нибудь необычное на вашем диске, например, шифрование или удаленное монтирование, может помешать операции копирования?

Один из способов исключить эвристику - поместить файлы в каталог раскладки, когда dm Server не запущен, и затем запустить dm Server, когда операция копирования определенно завершена. Если проблема воспроизводится, возможно, проблема в используемой вами JRE.

...