首页 > 解决方案 > 如何在heroku中找到网络服务路径?

问题描述

所以我有一个具有特定路由的网络应用程序:http://localhost:28389/MyProjectName/webresources/test/这仅返回一个 json 字符串:

当地的

但是当我在 heroku 上部署我的应用程序时,网络应用程序找不到相同的路径: Heroku 网址

这是我的应用程序配置:

@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application {

  @Override
  public Set<Class<?>> getClasses() {
      Set<Class<?>> resources = new java.util.HashSet<>();
      addRestResourceClasses(resources);
      return resources;
  }


  private void addRestResourceClasses(Set<Class<?>> resources) {
    resources.add(pkgServices.TestService.class);
  }

}

这是我的 TestService 类:

@Path("test")
public class TestService {

 public TestService () {

 }

 @GET
 @Produces({MediaType.APPLICATION_JSON})
 public Response getTestMsg() throws Exception {
     return Response.ok("welcome").build();
 }
}

标签: javaheroku

解决方案


阅读 Heroku 文档。他们为您分配端口号并将其设置为环境变量。您必须在应用程序中使用此环境变量将 http 服务器绑定到此端口。

请注意,您仍会从浏览器的第 80 个端口连接到您的应用程序。

当前的问题是 Heroku 无法将请求转发到您的服务器,因为您没有在 Heroku 期望您侦听的端口上侦听。


推荐阅读