我有两个 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/