Java RESTAPI在部署到heroku时使用html响应
我正在尝试部署一个RESTAPI,而不涉及任何类型的UI/html文件。我只想让它用一些json响应体来响应,就是这样。我正在使用spring和Java11。此请求在localhost中运行良好,并使用JSON主体进行响应Java RESTAPI在部署到heroku时使用html响应,java,spring,heroku,Java,Spring,Heroku,我正在尝试部署一个RESTAPI,而不涉及任何类型的UI/html文件。我只想让它用一些json响应体来响应,就是这样。我正在使用spring和Java11。此请求在localhost中运行良好,并使用JSON主体进行响应 POST /api/v1/character-info HTTP/1.1 Host: localhost:6969 Content-Type: application/json Accept: application/json Cache-Control: no-cache
POST /api/v1/character-info HTTP/1.1
Host: localhost:6969
Content-Type: application/json
Accept: application/json
Cache-Control: no-cache
Postman-Token: 75913809-8b11-494f-b5ac-dfd6c3cecbb1
{
"accountId": "123123",
"teamNames": [
"pepper",
"heath"
]
}
但是,当我将应用程序部署到heroku时,相同的请求不再有效。我将localhost:6969
更改为https://myapp.herokuapp.com
,它将使用以下html正文进行回复:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="utf-8">
<title>Application Error</title>
<style media="screen">
html,body,iframe {
margin: 0;
padding: 0;
}
html,body {
height: 100%;
overflow: hidden;
}
iframe {
width: 100%;
height: 100%;
border: 0;
}
</style>
</head>
<body>
<iframe src="//www.herokucdn.com/error-pages/application-error.html"></iframe>
</body>
</html>
这是我的文件:
worker: java -jar -Dserver.port=$MY_APP_PORT build/libs/*.jar
Heroku的503响应HTML和“无web进程运行”错误告诉您web服务器进程未运行,因此无法提供JSON响应 您可以在Heroku文档中找到有关Heroku错误代码的更多信息,例如,此错误代码为H14: 他们的文档建议将您的web进程扩展到至少1 dyno才能运行。然而,我注意到在您的Procfile中没有列出web进程,您只有辅助进程。在Heroku上,工作进程未连接到HTTP端点。您需要为此定义一个web进程 尝试将您的个人资料更改为以下内容:
web: java -jar -Dserver.port=$PORT build/libs/*.jar
确保提交并部署此更改
然后,使用Heroku web界面来扩展web进程,或者如果使用CLI界面,则可以使用Heroku Toolbelt:
heroku ps:scale web=1
返回的HTML是Heroku的应用程序错误。你的应用程序日志怎么说?您可以使用
heroku日志
命令检查它们。Hi添加了日志。请帮帮我。我试过你写的东西,但没用(我得到一个错误代码H10。终于成功了。感谢您的指导。在完成您的建议后,我将procfile更改为web:java-jar-Dserver.port=$port build/libs/*.jar
)。
web: java -jar -Dserver.port=$PORT build/libs/*.jar
heroku ps:scale web=1