I got R10 Error when running Spring boot application in heroku. I tried most of the proposals in Stack Overflow, but they didn't work for me.
Please help me..
My Procfile
web: java $JAVA_OPTS -jar -Dserver.port=$PORT -Dspring.profiles.active=prod ./build/libs/SSN-0.0.1-SNAPSHOT.jar --server.port=$PORT
My application.properties
server.address=localhost
server.port=${PORT:8080}
Logs..
2022-11-19T23:12:04.731627+00:00 heroku[web.1]: Starting process with command `java $JAVA_OPTS -jar -Dserver.port=31021 -Dspring.profiles.active=prod ./build/libs/SSN-0.0.1-SNAPSHOT.jar --server.port=31021`
2022-11-19T23:12:05.568080+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2022-11-19T23:12:05.572420+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -XX:+UseContainerSupport -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2022-11-19T23:12:07.554745+00:00 app[web.1]:
2022-11-19T23:12:07.554775+00:00 app[web.1]: . ____ _ __ _ _
2022-11-19T23:12:07.554793+00:00 app[web.1]: /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
2022-11-19T23:12:07.554818+00:00 app[web.1]: ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2022-11-19T23:12:07.554843+00:00 app[web.1]: \\/ ___)| |_)| | | | | || (_| | ) ) ) )
2022-11-19T23:12:07.554869+00:00 app[web.1]: ' |____| .__|_| |_|_| |_\__, | / / / /
2022-11-19T23:12:07.554893+00:00 app[web.1]: =========|_|==============|___/=/_/_/_/
2022-11-19T23:12:07.555829+00:00 app[web.1]: :: Spring Boot :: (v2.6.1)
2022-11-19T23:12:07.555859+00:00 app[web.1]:
2022-11-19T23:12:08.361956+00:00 app[web.1]: 2022-11-19 23:12:08.357 INFO 4 --- [ main] io.twotle.ssn.SsnApplication : Starting SsnApplication using Java 17.0.5 on 508919e7-0325-4bb9-8e53-748955d64441 with PID 4 (/app/build/libs/SSN-0.0.1-SNAPSHOT.jar started by u53593 in /app)
2022-11-19T23:12:08.362497+00:00 app[web.1]: 2022-11-19 23:12:08.362 INFO 4 --- [ main] io.twotle.ssn.SsnApplication : The following profiles are active: prod
2022-11-19T23:12:11.674272+00:00 app[web.1]: 2022-11-19 23:12:11.674 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2022-11-19T23:12:11.674795+00:00 app[web.1]: 2022-11-19 23:12:11.674 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2022-11-19T23:12:11.697612+00:00 app[web.1]: 2022-11-19 23:12:11.697 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 5 ms. Found 0 Redis repository interfaces.
2022-11-19T23:12:12.498128+00:00 app[web.1]: 2022-11-19 23:12:12.497 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2022-11-19T23:12:12.499210+00:00 app[web.1]: 2022-11-19 23:12:12.499 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2022-11-19T23:12:12.671312+00:00 app[web.1]: 2022-11-19 23:12:12.671 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 168 ms. Found 1 JPA repository interfaces.
2022-11-19T23:12:12.678732+00:00 app[web.1]: 2022-11-19 23:12:12.678 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2022-11-19T23:12:12.678800+00:00 app[web.1]: 2022-11-19 23:12:12.678 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2022-11-19T23:12:12.683749+00:00 app[web.1]: 2022-11-19 23:12:12.683 INFO 4 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface io.twotle.ssn.repository.UserRepository. If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository.
2022-11-19T23:12:12.683829+00:00 app[web.1]: 2022-11-19 23:12:12.683 INFO 4 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 4 ms. Found 0 Redis repository interfaces.
2022-11-19T23:12:14.770009+00:00 app[web.1]: 2022-11-19 23:12:14.769 INFO 4 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 31021 (http)
2022-11-19T23:12:15.330804+00:00 app[web.1]: 2022-11-19 23:12:15.330 INFO 4 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2022-11-19T23:12:15.331066+00:00 app[web.1]: 2022-11-19 23:12:15.330 INFO 4 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.55]
2022-11-19T23:12:15.428399+00:00 app[web.1]: 2022-11-19 23:12:15.427 INFO 4 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2022-11-19T23:12:15.428403+00:00 app[web.1]: 2022-11-19 23:12:15.427 INFO 4 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 6945 ms
2022-11-19T23:12:15.633216+00:00 app[web.1]: 2022-11-19 23:12:15.631 INFO 4 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2022-11-19T23:12:17.972054+00:00 app[web.1]: 2022-11-19 23:12:17.971 INFO 4 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2022-11-19T23:12:18.044014+00:00 app[web.1]: 2022-11-19 23:12:18.043 INFO 4 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2022-11-19T23:12:18.128438+00:00 app[web.1]: 2022-11-19 23:12:18.128 INFO 4 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.1.Final
2022-11-19T23:12:18.343273+00:00 app[web.1]: 2022-11-19 23:12:18.343 INFO 4 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2022-11-19T23:12:18.479720+00:00 app[web.1]: 2022-11-19 23:12:18.478 INFO 4 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
2022-11-19T23:12:20.066360+00:00 app[web.1]: 2022-11-19 23:12:20.066 INFO 4 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2022-11-19T23:12:20.074778+00:00 app[web.1]: 2022-11-19 23:12:20.074 INFO 4 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2022-11-19T23:12:22.381991+00:00 app[web.1]: 2022-11-19 23:12:22.381 WARN 4 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2022-11-19T23:12:22.678994+00:00 app[web.1]: 2022-11-19 23:12:22.678 INFO 4 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@32b0876c, org.springframework.security.web.context.SecurityContextPersistenceFilter@201c3cda, org.springframework.security.web.header.HeaderWriterFilter@58d6b7b9, org.springframework.security.web.csrf.CsrfFilter@76332405, org.springframework.security.web.authentication.logout.LogoutFilter@79c5460e, io.twotle.ssn.jwt.JwtAuthenticationFilter@2aaf152b, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@5d97caa4, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6732726, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@39bbd9e0, org.springframework.security.web.session.SessionManagementFilter@7d0d91a1, org.springframework.security.web.access.ExceptionTranslationFilter@54402c04, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1df1ced0]
2022-11-19T23:12:23.622667+00:00 app[web.1]: 2022-11-19 23:12:23.622 INFO 4 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 31021 (http) with context path ''
2022-11-19T23:12:24.534472+00:00 app[web.1]: 2022-11-19 23:12:24.534 INFO 4 --- [ main] io.twotle.ssn.SsnApplication : Started SsnApplication in 18.025 seconds (JVM running for 18.961)
2022-11-19T23:12:39.488676+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path="/swagger-ui/" host=backend-ssn.herokuapp.com request_id=308bce22-08dd-4233-baed-5acfcd6698bc fwd="MYIP" dyno= connect= service= status=503 bytes= protocol=http
2022-11-19T23:13:02.551849+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path="/swagger-ui/" host=backend-ssn.herokuapp.com request_id=99673378-2414-451d-a355-02cb0b28e02f fwd="MYIP" dyno= connect= service= status=503 bytes= protocol=http
2022-11-19T23:13:35.061864+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
2022-11-19T23:13:35.101053+00:00 heroku[web.1]: Stopping process with SIGKILL
2022-11-19T23:13:35.347922+00:00 heroku[web.1]: Process exited with status 137
2022-11-19T23:13:35.410928+00:00 heroku[web.1]: State changed from starting to crashed
I can't understand why I get R10 Error.
In local, my code is perfect to run server. (work well)
Your port appears to be correct. I'm not an expert in Spring, but I think you just need to set it once, either in application.properties or in your Procfile as -Dserver.port=$PORT. You've done both of those things. I don't think the --server.port=$PORT does anything.
However, you have also set server.address=localhost in application.properties. Assuming that specifies the interface the server should listen on, that's not correct. localhost probably can't receive traffic from outside of the dyno itself.
Try changing it to server.address=0.0.0.0, then commit and redeploy. This should instruct Tomcat to listen on all available IP addresses.