java - 在 Servlet 中获取 JBoss HTTP 连接器端口

标签 java servlets

我有两个 Web 应用程序,每个应用程序都有一个 RESTFul 服务。在服务中,我需要调用第二个,例如,我有 StatusService 和 SomeService,根据状态 SomeService 执行一些不同的操作。因此,当我调用 SomeService 时,它​​会调用 StatusService 来获取当前状态,然后执行操作。

所以,我在 SomeService 中使用了 reques.getServerPort() 来调用我的 StatusService,我有这样的东西

 URL url = new URL("http://localhost:"+request.getServerPort()+"/app2/status");

当我直接从 jboss 调用该服务时它可以工作。

但是有一个 Apache 作为 DMZ,并且只有 SomeService 被外部化,所以当我通过 DMZ 调用 SomeService 时,它​​会尝试调用 http://localhost:80/app2/status 而不是 http://localhost:8080/app2/status

还有其他方法获取端口吗?

提前致谢。

最佳答案

您可以尝试request.getLocalPort

根据 javadocs,它返回接收请求的端口。

关于java - 在 Servlet 中获取 JBoss HTTP 连接器端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16743413/

相关文章:

java - principal.getName() 返回 facebook 的 ID 而不是名称

Java Selenium Webdriver 设置卷?

java - 将属性文件中的值加载到 jsp 中,而不在 JSP 页面内使用 scriplet

java - 使用 Commons FileUpload 处理多部分/表单数据是否不被弃用?

java - 在java动态web项目中找不到图像

java - 是否可以查看servlet的源代码?

java - 计算 Java EE 网络应用程序中用户数量的最佳方法

java - 设置安卓 :windowIsFloating programmatically

java - 为什么一个类需要访问 Spring 上下文?

java - 更改 javax.servlet.http.HttpServlet 中的响应代码