Spring Boot Elasti c Beanstalk java .time.DateTimeException при запуске java -jar - PullRequest
0 голосов
/ 13 января 2020

У меня есть многомодульный проект Spring Boot, развернутый на AWS Elasti c Beanstalk с CodePipeline.

Мой Procfile: web: java -jar parent/module1/target/y-0.0.1-SNAPSHOT.jar

Мой Buildfile: build: cd parent && mvn package

Вывод, который я получаю:

Exception in thread "main" java.time.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 0
        at java.time.temporal.ValueRange.checkValidValue(ValueRange.java:311)
        at java.time.temporal.ChronoField.checkValidValue(ChronoField.java:703)
        at java.time.LocalDate.of(LocalDate.java:267)
        at java.time.LocalDateTime.of(LocalDateTime.java:336)
        at org.springframework.boot.loader.jar.CentralDirectoryFileHeader.decodeMsDosFormatDateTime(CentralDirectoryFileHeader.java:127)
        at org.springframework.boot.loader.jar.CentralDirectoryFileHeader.getTime(CentralDirectoryFileHeader.java:116)
        at org.springframework.boot.loader.jar.JarEntry.<init>(JarEntry.java:58)
        at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:316)
        at org.springframework.boot.loader.jar.JarFileEntries.access$400(JarFileEntries.java:48)
        at org.springframework.boot.loader.jar.JarFileEntries$EntryIterator.next(JarFileEntries.java:366)
        at org.springframework.boot.loader.jar.JarFileEntries$EntryIterator.next(JarFileEntries.java:350)
        at org.springframework.boot.loader.jar.JarFile$2.nextElement(JarFile.java:204)
        at org.springframework.boot.loader.jar.JarFile$2.nextElement(JarFile.java:195)
        at org.springframework.boot.loader.archive.JarFileArchive$EntryIterator.next(JarFileArchive.java:189)
        at org.springframework.boot.loader.archive.JarFileArchive$EntryIterator.next(JarFileArchive.java:174)
        at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:85)
        at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:69)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)

Я пошел, чтобы выполнить вручную команда java -jar на моем экземпляре EC2, и она выдает ту же ошибку.

Я не нашел много, когда искал объяснение, но я думаю, что это может быть из java версии.

openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

EC2 OS:

NAME="Amazon Linux AMI"
VERSION="2018.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2018.03"
PRETTY_NAME="Amazon Linux AMI 2018.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2018.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"

Редактировать: Я также нашел это - https://github.com/spring-projects/spring-boot/issues/19518

1 Ответ

0 голосов
/ 13 января 2020

Похоже, что-то не так с вашим файлом JAR: CentralDirectoryFileHeader читает файл JAR (сжатый ZIP) и обнаруживает неправильную отметку даты.

См. https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/CentralDirectoryFileHeader.java

Редактировать: Согласно https://github.com/spring-projects/spring-boot/issues/19518 это происходит, когда система, в которой создается JAR, имеет системное время 1970.

На сегодняшний день (январь 2020 г.) исправление ошибки еще не выпущен. Чтобы решить эту проблему, вы должны создать новый JAR после правильной установки системного времени.

...