2016-01-19 28 views
2

我想在Heroku上运行我的应用程序,但它不起作用。从日志中我可以看到下面:Java Spring MVC无法在Heroku上启动应用程序。错误H10(无法找到webapp亚军)

2016-01-18T13:38:31.621218+00:00 heroku[web.1]: Process exited with status 1 2016-01-18T13:38:48.101117+00:00 app[web.1]: Error: Unable to access jarfile target/dependency/webapp-runner-8.0.30.1.jar

2016-01-18T13:38:48.100249+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.

2016-01-18T13:38:48.700243+00:00 heroku[web.1]: State changed from starting to crashed 2016-01-18T13:43:12.241285+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=macfol.herokuapp.com request_id=c6418015-843d-4f5a-8dde-83130e94a7c6 fwd="159.220.74.5" dyno= connect= service= status=503 bytes=

我一直不成功试图修改这两个的pom.xml以及procfile,以便将的Heroku终于找到的.jar。

还有就是procfile:

web: java $JAVA_OPTS -jar target/dependency/webapp-runner-8.0.30.1.jar --target/kamienica 

而且pom.xml的

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

    <modelVersion>4.0.0</modelVersion> 
    <groupId>kamienica</groupId> 
    <packaging>war</packaging> 
    <version>1.0.0</version> 
    <name>Kamienica</name> 

    <properties> 
     <springframework.version>4.0.6.RELEASE</springframework.version> 
     <hibernate.version>4.3.6.Final</hibernate.version> 
     <mysql.version>5.1.31</mysql.version> 
     <joda-time.version>2.3</joda-time.version> 
     <testng.version>6.9.4</testng.version> 
     <mockito.version>1.10.19</mockito.version> 
     <h2.version>1.4.187</h2.version> 
     <dbunit.version>2.2</dbunit.version> 
    </properties> 

    <dependencies> 
     <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 

     <!-- Hibernate --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 

     <!-- jsr303 validation --> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.1.3.Final</version> 
     </dependency> 

     <!-- MySQL --> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>${mysql.version}</version> 
     </dependency> 

     <!-- Joda-Time --> 
     <dependency> 
      <groupId>joda-time</groupId> 
      <artifactId>joda-time</artifactId> 
      <version>${joda-time.version}</version> 
     </dependency> 

     <!-- To map JodaTime with database type --> 
     <dependency> 
      <groupId>org.jadira.usertype</groupId> 
      <artifactId>usertype.core</artifactId> 
      <version>3.0.0.CR1</version> 
     </dependency> 

     <!-- Servlet+JSP+JSTL --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>javax.servlet.jsp-api</artifactId> 
      <version>2.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>taglibs</groupId> 
      <artifactId>standard</artifactId> 
      <version>1.1.2</version> 
      <scope>compile</scope> 
     </dependency> 

     <!-- Testing dependencies --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${springframework.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>${testng.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.mockito</groupId> 
      <artifactId>mockito-all</artifactId> 
      <version>${mockito.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.h2database</groupId> 
      <artifactId>h2</artifactId> 
      <version>${h2.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>dbunit</groupId> 
      <artifactId>dbunit</artifactId> 
      <version>${dbunit.version}</version> 
      <scope>test</scope> 
     </dependency> 

     <!-- for rest --> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>2.4.1.3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-annotations</artifactId> 
      <version>2.4.1</version> 
     </dependency> 
     <!-- Spring Security --> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>4.0.3.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>4.0.3.RELEASE</version> 
     </dependency> 


     <dependency> 
      <groupId>com.github.jsimone</groupId> 
      <artifactId>webapp-runner</artifactId> 
      <version>8.0.30.1</version> 
     </dependency> 

    </dependencies> 

    <repositories> 
     <repository> 
      <id>spring-snapshot</id> 
      <name>Spring Snapshot Repository</name> 
      <url>http://repo.springsource.org/snapshot</url> 
     </repository> 
    </repositories> 
    <build> 
     <pluginManagement> 
      <plugins> 


       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.3</version> 
        <configuration> 
         <source>1.7</source> 
         <target>1.7</target> 
        </configuration> 
       </plugin> 

       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>2.6</version> 
        <configuration> 
         <warSourceDirectory>src/main/webapp</warSourceDirectory> 
         <warName>Kamienica</warName> 
         <failOnMissingWebXml>false</failOnMissingWebXml> 
        </configuration> 
       </plugin> 


       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-dependency-plugin</artifactId> 
        <version>2.3</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.24.0</version> 
             <destFileName>webapp-runner.jar</destFileName> 
            </artifactItem> 
           </artifactItems> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 

      </plugins> 
     </pluginManagement> 
     <finalName>Kamienica</finalName> 
    </build> 
    <artifactId>Kamienica</artifactId> 
</project> 

“丢失” 的罐子在Maven依赖被发现。

感谢您的帮助

编辑 的procfile现在是:

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

没有结果......

EDIT 2

有一些进展,因为它在别处崩溃;)

enter image description here

编辑3 它的工作!感谢大家让这成为可能。最后我的应用程序在那里。我花了12个月才达到这一点。 再次感谢您! :)

回答

2
  1. 首先拆下开始<pluginManagement>,结束<pluginManagement/>标签在pom.xml(不要删除它里面的内容)。通过包括这个,将不会创建dependency目录和webapp-runner-8.0.30.1.jar,并且执行java命令时应用程序崩溃。

  2. finalName标记更改为<finalName>kamienica</finalName>。现在,您在<finalName>...</finalName>标记中有大写字母(K)。它`kamienica更改为小写字母,你在web: java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT target/kamienica.war

  3. 变化maven-war-plugin插件

      <plugin> 
           <groupId>org.apache.maven.plugins</groupId> 
           <artifactId>maven-war-plugin</artifactId> 
           <version>2.6</version> 
           <configuration> 
            <warSourceDirectory>src/main/webapp</warSourceDirectory> 
            <warName>kamienica</warName> 
            <failOnMissingWebXml>false</failOnMissingWebXml> 
           </configuration> 
          </plugin> 
    
+0

@Maciej ...请参阅编辑#3的答案! –

+2

谢谢!!!它正在工作。 12个月开发我的第一个应用程序,现在它在那里!谢谢!! – Maciej

3

destFileNamewebapp-runner.jar但你引用到您的Procfile另一个罐子:

web: java $JAVA_OPTS -jar target/dependency/webapp-runner-8.0.30.1.jar --target/kamienica 
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
               Version is redundant 

使用这个代替:

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

不幸的是这并没有帮助将其命名为名称<warName>kamienica</warName> ... – Maciej

+0

'Kamienica'。战争“应该以大写字母开头 –

+0

最新的错误是什么? –

相关问题