当前位置: 首页 > 知识库问答 >
问题:

在Dockers中对endpoint进行REST调用

寿阳华
2023-03-14

我正在构建一个Spring Boot应用程序,它有几个不同的RESTendpoint。它可以在本地打包并成功地作为jar文件启动。在本地运行时,我可以通过“http://localhost:8080/endpoint?params..”访问它的endpoint。我的任务是现在准备这个应用程序跑出码头工人。仍然在本地机器上工作,我创建了一个基于Java:8映像的Dockers容器。在这个容器中,我已经能够成功地从。jar运行我的应用程序。我的问题是,当应用程序在Docker之外托管时,我不明白如何调用应用程序内部的RESTendpoint,因为逻辑上localhost:8080/endpoint不再响应调用。

FROM openjdk:8
MAINTAINER  My Name email@email.com
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
EXPOSE 8080
RUN javac Main.java
CMD ["java", "Main"]

同样的问题,无法通过http://localhost:8080/endpoint访问endpoint

任何帮助都将不胜感激。谢谢!

共有1个答案

荆弘伟
2023-03-14

您需要发布端口(而不是公开它)。公开端口主要用于链接和服务上下文。在您仅运行Docker容器的示例中,您只需发布端口,以便它可以从主机获得。您可以使用--publish-p:

docker run -d --name myapp -p 8080:8080 myappimage

然后,您可以在主机IP地址上的端口8080访问应用程序(Windows上的Docker和Mac上的Docker运行一个允许localhost:8080工作的代理)。

 类似资料:
  • 问题内容: 我正在尝试使用Swift来对REST API进行GET调用,并且试图遵循众多教程,但无法弄清楚。要么是因为我无法弄清楚如何将所有Obj- C转换为Swift,要么是因为不赞成使用n’这样的方法的一半。有谁知道如何进行调用以及解析返回的JSON数据? 问题答案: 您可以这样做: 编辑:对于对此有疑问的人,也许您的JSON流是数组[]而不是对象{},因此您必须将jsonResult更改为

  • 问题内容: 在 Node.js中 ,除了使用子进程进行 CURL 调用之外,还有没有办法对远程服务器 REST API 进行CURL调用并获取返回数据? 我还需要将请求标头设置为远程 REST 调用,还需要在GET(或POST)中查询字符串。 我找到了这个:http : //blog.nodejitsu.com/jsdom-jquery-in-5-lines-on- nodejs 但它没有显示任何

  • 我已经讨论过了:如何使用swagger定义path中的可选参数。 我有这个endpoint: 当我点击restendpoint并仅传递firstName时,Swagger正在抱怨必需的参数。我们怎样才能禁用它? 注意:我真的不想创建另一个endpoint,只是为了让它通过swagger工作。

  • 我是电影人的新手,如果这个问题看起来很傻,请原谅我。 我已经创建了一个Movelet,我正在使用Eclipse和Movilizer插件进行开发。在这个Movelet中,我想使用现有的REST Web服务。上述网络服务目前正被基于网络的应用程序所使用,我们正在Movilizer中开发移动应用程序。 有人可以指向过程/代码片段以使用来自 Movilizer 的 REST 服务吗?请注意,我需要 MEL

  • 我正在研究如何在RedHat OpenShift上运行Spring Batch作业作为Kubernetes计划作业。步骤已经完成, 1) 创建了一个示例 Spring Batch 应用程序,该应用程序读取一个执行简单处理的 .csv 文件并将一些数据放入内存中的 h2 数据库中。作业启动器作为 REST 终结点 (/load) 调用。源代码可以在这里找到。有关endpoint信息,请参阅自述文件。

  • 我对做api调用还是个新手。我得到了一个生成token的Java类。我曾被要求构建一个web服务,该服务使用以下方法对SecurityUtil.CalculateAuthorizationSignature(字段、clientId、clientSecret)方法进行api调用 参数,而不是像下面的类中所示的那样对它们进行硬编码: 公共类SecurityUtil{public static void