Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't deploy Spring Boot war to Elastic Beanstalk

I'm trying to deploy a Spring Boot application (that works locally) to EB and it seems to barf on something in the pom file, but I can't narrow it down. Running Tomcat8, Java 8. I was able to get a more basic version with the dependencies stripped out deployed, but this just won't budge.

Including my eb-activity.log and pom.xml

The specific error in eb-activity I'm getting is:

6813 extra bytes at beginning or within zipfile
    (attempting to process anyway)

Part of my eb-activity.log looks like:

[2016-11-28T21:59:36.320Z] INFO  [1738]  - [Initialization] : Starting activity...
  ....
  Running preinit
  + preinit
  ++ /opt/elasticbeanstalk/bin/get-config container -k tomcat_version
  + TOMCAT_VERSION=8
  + TOMCAT_NAME=tomcat8
  + TOMCAT_HOME=/usr/share/tomcat8
  + TOMCAT_CONF_HOME=/etc/tomcat8
  + SET_LIMIT_SH=/etc/elasticbeanstalk/set-ulimit.sh
  + echo 'Patching Tomcat 8 startup scripts'
  Patching Tomcat 8 startup scripts
  + '[' -f /opt/elasticbeanstalk/containerfiles/tomcat-elasticbeanstalk ']'
  + echo 'Installing tomcat-elasticbeanstalk script'
  Installing tomcat-elasticbeanstalk script
  + /bin/mv /opt/elasticbeanstalk/containerfiles/tomcat-elasticbeanstalk /usr/sbin
  + /bin/chown root:root /usr/sbin/tomcat-elasticbeanstalk
  + /bin/chmod 755 /usr/sbin/tomcat-elasticbeanstalk
  + echo 'Fixing Tomcat 8 init.d script'
  Fixing Tomcat 8 init.d script
  + /bin/sed -i -e 's/\/usr\/sbin\/tomcat8/\/usr\/sbin\/tomcat-elasticbeanstalk/g' /etc/init.d/tomcat8
  + grep -q /etc/elasticbeanstalk/set-ulimit.sh
  + cat /etc/init.d/tomcat8
  + sed -i '/function start() {/a \ \ \ if [ -f /etc/elasticbeanstalk/set-ulimit.sh ]; then . /etc/elasticbeanstalk/set-ulimit.sh; fi' /etc/init.d/tomcat8
  + echo 'Adding X-Forwarded-Proto valve'
  Adding X-Forwarded-Proto valve
  + /bin/sed -i -e '/<\/Host>/ i\
      <Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto" internalProxies="10\\.\\d+\\.\\d+\\.\\d+|192\\.168\\.\\d+\\.\\d+|169\\.254\\.\\d+\\.\\d+|127\\.\\d+\\.\\d+\\.\\d+|172\\.(1[6-9]|2[0-9]|3[0-1])\\.\\d+\\.\\d+" \/>
  ' /etc/tomcat8/server.xml
  + echo 'Setting UTF-8 support'
  Setting UTF-8 support
  + grep -q 'Elastic Beanstalk' /etc/tomcat8/server.xml
  + sed -i '1 a\<!-- Elastic Beanstalk Maintained -->' /etc/tomcat8/server.xml
  + sed -i 's/<Connector port=\"8080\" protocol=\"HTTP\/1.1\"/&\n               URIEncoding="UTF-8"/g' /etc/tomcat8/server.xml
  + ln -sf /usr/share/java/apache-commons-pool.jar /usr/share/tomcat8/lib/
[2016-11-28T21:59:50.212Z] INFO  [1738]  - [Initialization/PreInitStage0/PreInitHook/03processmgrsetup.sh] : Starting activity...
[2016-11-28T21:59:50.479Z] INFO  [1738]  - [Initialization/PreInitStage0/PreInitHook/03processmgrsetup.sh] : Completed activity. Result:
  ++ /opt/elasticbeanstalk/bin/get-config container -k tomcat_version
  + TOMCAT_VERSION=8
  + MONIT_TOMCAT_CONF=monit-tomcat8.conf
  + /bin/cp -f /opt/elasticbeanstalk/containerfiles/monit-tomcat8.conf /etc/monit.d/
  + chmod 0600 /etc/monit.d/monit-tomcat8.conf
[2016-11-28T21:59:50.479Z] INFO  [1738]  - [Initialization/PreInitStage0/PreInitHook/03setup_httpd_logging.sh] : Starting activity...
[2016-11-28T21:59:50.491Z] INFO  [1738]  - [Initialization/PreInitStage0/PreInitHook/03setup_httpd_logging.sh] : Completed activity.
[2016-11-28T21:59:50.492Z] INFO  [1738]  - [Initialization/PreInitStage0/PreInitHook] : Completed activity. Result:
  Successfully execute hooks in directory /opt/elasticbeanstalk/hooks/preinit.
[2016-11-28T21:59:50.492Z] INFO  [1738]  - [Initialization/PreInitStage0] : Completed activity. Result:
  Initialization - Command CMD-PreInit stage 0 completed
[2016-11-28T21:59:50.492Z] INFO  [1738]  - [Initialization/AddonsAfter] : Starting activity...
[2016-11-28T21:59:50.492Z] INFO  [1738]  - [Initialization/AddonsAfter] : Completed activity.
[2016-11-28T21:59:50.492Z] INFO  [1738]  - [Initialization] : Completed activity. Result:
  Initialization - Command CMD-PreInit succeeded
[2016-11-28T22:00:27.282Z] INFO  [1959]  - [Application deployment tester-1.1.2@1] : Starting activity...
[2016-11-28T22:00:27.282Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/AddonsBefore] : Starting activity...
[2016-11-28T22:00:27.282Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/AddonsBefore] : Completed activity.
[2016-11-28T22:00:27.701Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0] : Starting activity...
[2016-11-28T22:00:27.701Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/HealthdLogRotation] : Starting activity...
[2016-11-28T22:00:27.713Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/HealthdLogRotation] : Completed activity. Result:
  ["/etc/cron.hourly/cron.logrotate.elasticbeanstalk.healthd.conf"]
[2016-11-28T22:00:27.713Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/HealthdHTTPDLogging] : Starting activity...
[2016-11-28T22:00:27.714Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/HealthdHTTPDLogging] : Completed activity.
[2016-11-28T22:00:27.715Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/HealthdNginxLogging] : Starting activity...
[2016-11-28T22:00:27.715Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/HealthdNginxLogging] : Completed activity.
[2016-11-28T22:00:27.715Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/EbExtensionPreBuild] : Starting activity...
[2016-11-28T22:00:28.178Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Starting activity...
[2016-11-28T22:00:28.179Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Completed activity.
[2016-11-28T22:00:28.214Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/EbExtensionPreBuild] : Completed activity.
[2016-11-28T22:00:28.215Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/AppDeployPreHook] : Starting activity...
[2016-11-28T22:00:28.215Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/AppDeployPreHook/01clean.sh] : Starting activity...
[2016-11-28T22:00:28.476Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/AppDeployPreHook/01clean.sh] : Completed activity. Result:
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir
  + EB_APP_STAGING_DIR=/tmp/deployment/application/ROOT
  + rm -rf /tmp/deployment/application/ROOT
  + mkdir -p /tmp/deployment/application/ROOT
[2016-11-28T22:00:28.477Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/AppDeployPreHook/02unzip.sh] : Starting activity...
[2016-11-28T22:00:29.351Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/AppDeployPreHook/02unzip.sh] : Activity execution failed, because: ++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir
  + EB_APP_STAGING_DIR=/tmp/deployment/application/ROOT
  ++ /opt/elasticbeanstalk/bin/get-config container -k source_bundle
  + EB_SOURCE_BUNDLE=/opt/elasticbeanstalk/deploy/appsource/source_bundle
  + /usr/bin/unzip -o -d /tmp/deployment/application/ROOT /opt/elasticbeanstalk/deploy/appsource/source_bundle
  Archive:  /opt/elasticbeanstalk/deploy/appsource/source_bundle
  warning [/opt/elasticbeanstalk/deploy/appsource/source_bundle]:  6813 extra bytes at beginning or within zipfile
    (attempting to process anyway)
     ....
     creating: /tmp/deployment/application/ROOT/org/springframework/boot/loader/util/
    inflating: /tmp/deployment/application/ROOT/org/springframework/boot/loader/util/SystemPropertyUtils.class  
    inflating: /tmp/deployment/application/ROOT/org/springframework/boot/loader/util/AsciiBytes.class   (Executor::NonZeroExitStatus)


[2016-11-28T22:00:29.352Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/AppDeployPreHook/02unzip.sh] : Activity failed.
[2016-11-28T22:00:29.352Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0/AppDeployPreHook] : Activity failed.
[2016-11-28T22:00:29.352Z] INFO  [1959]  - [Application deployment tester-1.1.2@1/StartupStage0] : Activity failed.
[2016-11-28T22:00:29.354Z] INFO  [1959]  - [Application deployment tester-1.1.2@1] : Completed activity. Result:
  Application deployment - Command CMD-Startup failed
....

My pom looks like:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.core</groupId>
<artifactId>tester</artifactId>
<version>${project.version}</version>
<packaging>war</packaging>

<name>tester</name>
<description>Testing Spring Boot on EB</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.9.BUILD-SNAPSHOT</version>
    <relativePath/>
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <apache-commons.version>3.0</apache-commons.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-ws</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${apache-commons.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.4-1206-jdbc42</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
        </plugin>
        <!-- tag::wsdl[] -->
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.12.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaLanguage>WSDL</schemaLanguage>
                <generatePackage>integration.wsdl</generatePackage>
                <schemas>
                    <schema>
                        <url>https://www.soaplayeroverhere.com?wsdl</url>
                    </schema>
                </schemas>
            </configuration>
        </plugin>
        <!-- end::wsdl[] -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <compilerArgument>-parameters</compilerArgument>
            </configuration>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

What could this be?

like image 802
albaba Avatar asked Nov 28 '16 22:11

albaba


People also ask

Can we deploy war file in spring boot?

By using Spring Boot application, we can create a war file to deploy into the web server.


2 Answers

springBoot {
    mainClass = ''
    executable = false
    buildInfo()
}

executable needs to be set to false in build.gradle for this to work in beanstalk

like image 162
Booyah Avatar answered Sep 28 '22 11:09

Booyah


For maven I had to add

<configuration>
   <mainClass>${mainClass}</mainClass>
   <addResources>true</addResources>
    **<executable>false</executable>**
</configuration>

in pom

like image 28
Markus Wild Avatar answered Sep 28 '22 12:09

Markus Wild