Heroku:依赖后的Tomcat部署问题

时间:2016-06-14 20:10:34

标签: java maven tomcat heroku dependencies

我正在将应用程序部署到heroku。我使用tomcat 8.0.27和Java 7并在本地工作正常。我的pom.xml看起来像这样:

<?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.app</groupId>
    <artifactId>apiexpotaxi</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>apiexpotaxi</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>br.com.caelum</groupId>
            <artifactId>vraptor</artifactId>
            <version>4.1.4</version>
        </dependency>

        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
            <version>2.5.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.2.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.common</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>4.0.1.Final</version>
            <classifier>tests</classifier>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.1.Final</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>3.1.0.CR2</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.1-901.jdbc4</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>com.github.jsimone</groupId>
                                    <artifactId>webapp-runner</artifactId>
                                    <version>8.0.30.2</version>
                                    <destFileName>webapp-runner.jar</destFileName>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

我的Procfile:

web:    java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT target/*.war

这是日志:

2016-06-14T20:00:43.690335+00:00 app[web.1]: Adding Context  for /app/target/tomcat.22571/webapps/expanded
2016-06-14T20:00:43.690206+00:00 app[web.1]: Expanding apiexpotaxi-1.0-SNAPSHOT.war into /app/target/tomcat.22571/webapps/expanded
2016-06-14T20:00:45.613401+00:00 app[web.1]: Jun 14, 2016 8:00:45 PM org.apache.coyote.AbstractProtocol init
2016-06-14T20:00:45.731190+00:00 app[web.1]: Jun 14, 2016 8:00:45 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
2016-06-14T20:00:45.778319+00:00 app[web.1]: Jun 14, 2016 8:00:45 PM org.apache.catalina.core.StandardEngine startInternal
2016-06-14T20:00:45.778328+00:00 app[web.1]: INFO: Starting Servlet Engine: Apache Tomcat/8.0.30
2016-06-14T20:00:45.613410+00:00 app[web.1]: INFO: Initializing ProtocolHandler ["http-nio-22571"]
2016-06-14T20:00:45.761602+00:00 app[web.1]: INFO: Starting service Tomcat
2016-06-14T20:00:45.731199+00:00 app[web.1]: INFO: Using a shared selector for servlet write/read
2016-06-14T20:00:45.761592+00:00 app[web.1]: Jun 14, 2016 8:00:45 PM org.apache.catalina.core.StandardService startInternal
2016-06-14T20:00:46.322486+00:00 heroku[web.1]: State changed from starting to up
2016-06-14T20:00:46.781935+00:00 app[web.1]: Jun 14, 2016 8:00:46 PM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
2016-06-14T20:00:46.781946+00:00 app[web.1]: INFO: No global web.xml found
2016-06-14T20:00:49.769814+00:00 app[web.1]: Jun 14, 2016 8:00:49 PM org.apache.catalina.core.ContainerBase startInternal
2016-06-14T20:00:49.769825+00:00 app[web.1]: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
2016-06-14T20:00:49.769830+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
2016-06-14T20:00:49.769829+00:00 app[web.1]:    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
2016-06-14T20:00:49.769831+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
2016-06-14T20:00:49.769831+00:00 app[web.1]:    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2016-06-14T20:00:49.769824+00:00 app[web.1]: SEVERE: A child container failed during start
2016-06-14T20:00:49.769829+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.769839+00:00 app[web.1]:    at java.lang.Thread.run(Thread.java:745)
2016-06-14T20:00:49.769840+00:00 app[web.1]: Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
2016-06-14T20:00:49.769836+00:00 app[web.1]:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
2016-06-14T20:00:49.769839+00:00 app[web.1]:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
2016-06-14T20:00:49.769842+00:00 app[web.1]:    ... 6 more
2016-06-14T20:00:49.769826+00:00 app[web.1]:    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
2016-06-14T20:00:49.769841+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
2016-06-14T20:00:49.769843+00:00 app[web.1]: Caused by: java.lang.NoClassDefFoundError: Ljavax/enterprise/event/Event;
2016-06-14T20:00:49.769844+00:00 app[web.1]:    at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
2016-06-14T20:00:49.769843+00:00 app[web.1]:    at java.lang.Class.getDeclaredFields0(Native Method)
2016-06-14T20:00:49.769846+00:00 app[web.1]:    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:256)
2016-06-14T20:00:49.769828+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
2016-06-14T20:00:49.769848+00:00 app[web.1]:    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774)
2016-06-14T20:00:49.769848+00:00 app[web.1]:    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:334)
2016-06-14T20:00:49.769844+00:00 app[web.1]:    at java.lang.Class.getDeclaredFields(Class.java:1916)
2016-06-14T20:00:49.769846+00:00 app[web.1]:    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:105)
2016-06-14T20:00:49.769845+00:00 app[web.1]:    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
2016-06-14T20:00:49.769827+00:00 app[web.1]:    at java.util.concurrent.FutureTask.get(FutureTask.java:192)
2016-06-14T20:00:49.769847+00:00 app[web.1]:    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:64)
2016-06-14T20:00:49.769851+00:00 app[web.1]:    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
2016-06-14T20:00:49.769849+00:00 app[web.1]:    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
2016-06-14T20:00:49.769852+00:00 app[web.1]:    ... 6 more
2016-06-14T20:00:49.769853+00:00 app[web.1]: Caused by: java.lang.ClassNotFoundException: javax.enterprise.event.Event
2016-06-14T20:00:49.769850+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
2016-06-14T20:00:49.769854+00:00 app[web.1]:    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
2016-06-14T20:00:49.769855+00:00 app[web.1]: 
2016-06-14T20:00:49.769852+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.771558+00:00 app[web.1]: Jun 14, 2016 8:00:49 PM org.apache.catalina.core.ContainerBase startInternal
2016-06-14T20:00:49.771569+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
2016-06-14T20:00:49.771568+00:00 app[web.1]:    at java.util.concurrent.FutureTask.get(FutureTask.java:192)
2016-06-14T20:00:49.771566+00:00 app[web.1]: SEVERE: A child container failed during start
2016-06-14T20:00:49.771570+00:00 app[web.1]:    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
2016-06-14T20:00:49.771568+00:00 app[web.1]:    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
2016-06-14T20:00:49.769855+00:00 app[web.1]:    ... 20 more
2016-06-14T20:00:49.771567+00:00 app[web.1]: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
2016-06-14T20:00:49.771570+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.769853+00:00 app[web.1]:    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
2016-06-14T20:00:49.769850+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
2016-06-14T20:00:49.771571+00:00 app[web.1]:    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
2016-06-14T20:00:49.771572+00:00 app[web.1]:    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
2016-06-14T20:00:49.771573+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.771574+00:00 app[web.1]:    at org.apache.catalina.startup.Tomcat.start(Tomcat.java:344)
2016-06-14T20:00:49.771575+00:00 app[web.1]:    at webapp.runner.launch.Main.main(Main.java:261)
2016-06-14T20:00:49.771575+00:00 app[web.1]: Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
2016-06-14T20:00:49.771576+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
2016-06-14T20:00:49.771572+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.771580+00:00 app[web.1]:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
2016-06-14T20:00:49.771582+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)
2016-06-14T20:00:49.771580+00:00 app[web.1]:    at java.lang.Thread.run(Thread.java:745)
2016-06-14T20:00:49.771581+00:00 app[web.1]: Caused by: org.apache.catalina.LifecycleException: A child container failed during start
2016-06-14T20:00:49.771577+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
2016-06-14T20:00:49.771579+00:00 app[web.1]:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
2016-06-14T20:00:49.771582+00:00 app[web.1]:    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
2016-06-14T20:00:49.771583+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.771584+00:00 app[web.1]:    ... 6 more
2016-06-14T20:00:49.772589+00:00 app[web.1]: Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Tomcat]]
2016-06-14T20:00:49.772259+00:00 app[web.1]: Exception in thread "main" org.apache.catalina.LifecycleException: Failed to start component [StandardServer[-1]]
2016-06-14T20:00:49.772357+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
2016-06-14T20:00:49.771584+00:00 app[web.1]: 
2016-06-14T20:00:49.772665+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
2016-06-14T20:00:49.772420+00:00 app[web.1]:    at org.apache.catalina.startup.Tomcat.start(Tomcat.java:344)
2016-06-14T20:00:49.772486+00:00 app[web.1]:    at webapp.runner.launch.Main.main(Main.java:261)
2016-06-14T20:00:49.771578+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
2016-06-14T20:00:49.772732+00:00 app[web.1]:    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
2016-06-14T20:00:49.771578+00:00 app[web.1]:    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2016-06-14T20:00:49.773065+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
2016-06-14T20:00:49.772797+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.772869+00:00 app[web.1]:    ... 2 more
2016-06-14T20:00:49.773535+00:00 app[web.1]: Caused by: org.apache.catalina.LifecycleException: A child container failed during start
2016-06-14T20:00:49.772991+00:00 app[web.1]: Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat]]
2016-06-14T20:00:49.773298+00:00 app[web.1]:    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
2016-06-14T20:00:49.773365+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.773427+00:00 app[web.1]:    ... 4 more
2016-06-14T20:00:49.773742+00:00 app[web.1]:    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2016-06-14T20:00:49.773610+00:00 app[web.1]:    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)
2016-06-14T20:00:49.773679+00:00 app[web.1]:    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
2016-06-14T20:00:49.773800+00:00 app[web.1]:    ... 6 more
2016-06-14T20:00:50.975298+00:00 heroku[web.1]: Process exited with status 1
2016-06-14T20:00:50.990864+00:00 heroku[web.1]: State changed from up to crashed
2016-06-14T20:03:31.360718+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=apiexpotaxi.herokuapp.com request_id=ab5586dd-92e3-480a-bce3-18c9999cf39b fwd="187.19.195.154" dyno= connect= service= status=503 bytes=

在我的依赖之前就是这样,并且工作正常:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
</dependency>

0 个答案:

没有答案