我正在尝试向Heroku部署一个简单的SpringMVC REST API - 我在github上有示例代码。当我部署到Heroku时,该应用程序无法正常工作 - 这就是我在Heroku上的日志文件中看到的内容:
2016-11-21T00:28:28.965526+00:00 app[web.1]: at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138)
2016-11-21T00:28:28.965587+00:00 app[web.1]: at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121)
2016-11-21T00:28:28.965642+00:00 app[web.1]: at org.springframework.boot.context.event.EventPublishingRunListener.started(EventPublishingRunListener.java:63)
2016-11-21T00:28:28.965701+00:00 app[web.1]: at org.springframework.boot.SpringApplicationRunListeners.started(SpringApplicationRunListeners.java:48)
2016-11-21T00:28:28.965762+00:00 app[web.1]: at org.springframework.boot.SpringApplication.run(SpringApplication.java:304)
2016-11-21T00:28:28.965804+00:00 app[web.1]: at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
2016-11-21T00:28:28.965865+00:00 app[web.1]: at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
2016-11-21T00:28:28.965926+00:00 app[web.1]: at com.jkerak.TodoApiApplication.main(TodoApiApplication.java:9)
2016-11-21T00:28:28.965989+00:00 app[web.1]: ... 8 more
2016-11-21T00:28:29.096742+00:00 heroku[web.1]: State changed from starting to crashed
2016-11-21T00:28:29.081552+00:00 heroku[web.1]: Process exited with status 1
2016-11-21T00:51:54.625237+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=jkerak-todoapi.herokuapp.com request_id=73c76e69-2084-436f-b829-dd533562d13a fwd="73.30.84.74" dyno= connect= service= status=503 bytes=
我在本地运行应用程序没有问题。
有没有地方可以访问有关Heroku出错的更多信息?我正在使用“Github部署”管道部署应用程序。
答案 0 :(得分:1)
您发布的日志被截断(您可以通过运行heroku logs -n 2000 -a youapp
获取更多日志)。但是使用Github上的代码,我发现了错误:
引起:java.lang.IllegalArgumentException:LoggerFactory不是Logback LoggerContext,但Logback在类路径上。删除Logback或竞争实现(从jar:file:/app/target/todoApi-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/slf4j-simple-1.7加载的org.slf4j.impl.SimpleLoggerFactory类。 21.jar!/)。如果您使用的是WebLogic,则需要添加' org.slf4j' to first-application-packages in WEB-INF / weblogic.xml class [org.slf4j.impl.SimpleLoggerFactory]的对象必须是ch.qos.logback.classic.LoggerContext类的实例
所以你的类路径有错误。我怀疑这不会发生在本地,因为类路径顺序是不确定的。
尝试从依赖项中删除slf4j-simple-1.7.21
。你可以通过改变你的swagger-codegen依赖来实现这一点:
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen</artifactId>
<version>2.2.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>