我正在尝试在heroku上部署我的服务器.我收到了这个错误:
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Run Code Online (Sandbox Code Playgroud)
这是我的Java类:
package introsde.document.endpoint;
import javax.xml.ws.Endpoint;
import introsde.assignment.soap.PeopleImpl;
public class PeoplePublisher {
public static String SERVER_URL = "http://localhost";
public static String PORT = "6902";
public static String BASE_URL = "/ws/people";
public static String getEndpointURL() {
return SERVER_URL+":"+PORT+BASE_URL;
}
public static void main(String[] args) {
String endpointUrl = getEndpointURL();
System.out.println("Starting People Service...");
System.out.println("--> Published at = "+endpointUrl);
Endpoint.publish(endpointUrl, new PeopleImpl());
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
谢谢
小智 28
尝试创建一个最小的spring-boot应用程序时遇到了同样的问题.我已经将heroku的java-getting-started实现与我的比较,并找到了这个很好的修复.只需将其添加到src/main/resources/application.properties即可
server.port=${PORT:5000}
Run Code Online (Sandbox Code Playgroud)
$PORT
您必须绑定到 Heroku 分配给您作为 env var和 host 的端口0.0.0.0
。因此,您应该更改代码以包含以下内容:
public static String PORT = System.getenv("PORT");
Run Code Online (Sandbox Code Playgroud)
这SERVER_URL
部分可能比较棘手。您可以使用 0.0.0.0,但如果您确实需要可公开访问的 URL,则需要进行如下设置(将“yourappname”更改为您的应用程序名称):
$ heroku config:set SERVER_URL="https://yourappname.herokuapp.com"
Run Code Online (Sandbox Code Playgroud)
然后添加代码:
public static String SERVER_URL = System.getenv("SERVER_URL");
Run Code Online (Sandbox Code Playgroud)
简单的解决方案:
web: java -Dserver.port=$PORT $JAVA_OPTS -jar target/myapi-1.0.0.jar
Run Code Online (Sandbox Code Playgroud)
替换myapi-1.0.0
为您的 jar 名称或使用*
注意:变量的顺序很重要。例如:以下不起作用。
web: java $JAVA_OPTS -Dserver.port=$PORT -jar target/myapi-1.0.0.jar
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9901 次 |
最近记录: |