Heroku崩溃,没有直接的错误消息。这是日志:
2017-02-20T18:27:08.194304+00:00 app[web.1]: Hello World
2017-02-20T18:27:08.512366+00:00 heroku[web.1]: State changed from starting to crashed
2017-02-20T18:27:08.489335+00:00 heroku[web.1]: Process exited with status 0
2017-02-20T18:27:09.590397+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=x.herokuapp.com request_id=59533920-38d9-426f-a7e0-c32d667b8d49 fwd="94.187.7.67" dyno= connect= service= status=503 bytes=
2017-02-20T18:27:10.538493+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=x.herokuapp.com request_id=30fdd320-7ea6-4eb5-b3fa-8cf8c4240a21 fwd="94.187.7.67" dyno= connect= service= status=503 bytes=
heroku logs -n 1000
没有任何变化
这是我的代码:
public class Main {
public static void main(String[] args){
System.out.println("Hello World");
}
}
Procfile:
web: java -jar build/libs/app-name-1.0-SNAPSHOT.jar
的build.gradle:
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.5
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4'
}
}
repositories {
mavenCentral()
}
task stage(dependsOn: ['build', 'clean'])
build.mustRunAfter clean
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}
jar {
manifest {
attributes(
'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
'Main-Class': com.mypackage.Main
)
}
}
apply plugin: 'com.github.johnrengelman.shadow'
我可以看到正在打印Hello World
。但是之后为什么会崩溃呢?
我正在使用带有IntelliJ IDEA的Gradle
答案 0 :(得分:3)
这里的问题是应用程序不是Web应用程序。
考虑Procfile
:
web: java -jar build/libs/app-name-1.0-SNAPSHOT.jar
第一个单词是web
,它向Heroku建议您尝试部署Web应用程序。但根据其代码,应用程序不是Web应用程序:
public class Main {
public static void main(String[] args){
System.out.println("Hello World");
}
}
应用程序不运行任何等待80或8080端口上的HTTP连接的Web服务器。应用程序只是将“Hello World”打印到标准输出并退出(因为程序结束了)。
2017-02-20T18:27:08.489335+00:00 heroku[web.1]: Process exited with status 0
Web应用程序可以等待连接。除非人类阻止它,否则它不能到达终点。
您可以使用this generator生成Web应用程序的模板。该应用程序将使用嵌入式apache tomcat(将充当应用程序的Web服务器)和spring-boot来引导Web应用程序基础结构。 Here是关于如何在spring-boot上编写Hello World应用程序的简短教程。它在Heroku上部署和工作。