Java 使用WAN IP而不是本地主机的RESTful web应用程序

Java 使用WAN IP而不是本地主机的RESTful web应用程序,java,rest,tomcat,networking,ip,Java,Rest,Tomcat,Networking,Ip,我正在使用RESTfulWeb服务和Tomcat用Java开发一个web应用程序。到目前为止,我在URI中使用了localhost:http://localhost:8080/3.ServerAPI/rest/Variable。但是如果我想使用真正的IP呢 我在本地网络上尝试过用LAN IP替换本地主机,效果很好:http://192.168.1.2:8080/3.ServerAPI/rest/Variable 此地址的应用程序收到了变量 如果我想通过互联网发送,只要我知道我必须使用WAN IP

我正在使用RESTfulWeb服务和Tomcat用Java开发一个web应用程序。到目前为止,我在URI中使用了localhost:
http://localhost:8080/3.ServerAPI/rest/Variable
。但是如果我想使用真正的IP呢

我在本地网络上尝试过用LAN IP替换本地主机,效果很好:
http://192.168.1.2:8080/3.ServerAPI/rest/Variable
此地址的应用程序收到了变量

如果我想通过互联网发送,只要我知道我必须使用WAN IP:
http://188.39.25.247:8080/3.ServerAPI/rest/Variable

我的问题是,如果我在WAN IP中使用最后一个URI,我是否还需要通过配置路由器将端口转发到LAN IP,或者它将像我使用LAN IP时一样工作


提前感谢

这实际上取决于您的网络设置

您可能需要在路由器上启用端口转发,以将请求定向到服务器所在的机器,同时确保路由器允许连接到端口8080

我最近在处理外部API的回调时不得不这么做。似乎还记得我必须在路由器上启用端口转发才能使其正常工作。不过这并不太难,只要查看路由器的说明就可以了——就像我说的,这取决于网络设置


希望这有帮助。

我见过类似的情况,问题是由于另一个应用程序正在使用端口。

如果您连接到internet,它应该可以直接工作。我不确定这是否真的适合此网站。简单的答案是,您的WAN IP用于路由器/调制解调器。因此,您必须在路由器/调制解调器上运行服务器,或将端口转发到本地网络上的计算机。这纯粹是一个网络配置问题,根本不是真正的编程。@Satish不是很有帮助,这些天谁是直接连接而不是通过路由器?我过去用TCP/IP开发了一个类似的应用程序,我使用那里的端口转发使其工作。但是,如果服务器上有一个应用程序将消息发送到另一个被许多远程用户使用的应用程序,该怎么办??所有这些用户都必须访问他们的路由器并进行端口转发???@user3358377我认为您需要从一开始就重新考虑这一点。请记住,当你查看Internet上的内容时,连接在一起的各个网络看起来都只是一台机器,你不会真正看到一个全局IP背后是一个网络上的多台机器。这是原因,当我使用机器名或IP地址时,请在URL中描述解决方案。当我使用localhost时,它工作正常。我得到404错误。这意味着它可以联系服务器,但不能执行请求,但我的断点从未命中。然后它似乎是在该端口上运行的其他应用程序。当我更换端口时,一切正常。在您的情况下,您是否尝试更改端口?它解决了你的问题吗?你也遇到了同样的问题吗?