Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何枚举指向Tomcat/SpringMVC实例的非本地主机、非127.0.0.1 IP地址/域?_Java_Spring Mvc_Tomcat_Url_Localhost - Fatal编程技术网

Java 如何枚举指向Tomcat/SpringMVC实例的非本地主机、非127.0.0.1 IP地址/域?

Java 如何枚举指向Tomcat/SpringMVC实例的非本地主机、非127.0.0.1 IP地址/域?,java,spring-mvc,tomcat,url,localhost,Java,Spring Mvc,Tomcat,Url,Localhost,在运行于Tomcat的spring应用程序中,我有一个API,它通过SMS向用户发送链接,以验证电话号码。我的生产服务器有一个公共IP和域名,反映在以下代码中: context.getRequestURL().toString().replace(context.getRequestURI(), context.getContextPath()); 因此,基于此生成的URL在生产中将是完美的。但是,当我在本地调试时,链接以本地网络上的其他计算机无法单击的链接开始(阅读通过SMS接收链接的我的手

在运行于Tomcat的spring应用程序中,我有一个API,它通过SMS向用户发送链接,以验证电话号码。我的生产服务器有一个公共IP和域名,反映在以下代码中:

context.getRequestURL().toString().replace(context.getRequestURI(), context.getContextPath());
因此,基于此生成的URL在生产中将是完美的。但是,当我在本地调试时,链接以本地网络上的其他计算机无法单击的链接开始(阅读通过SMS接收链接的我的手机)

有没有一种方法可以捕获指向运行应用程序的服务器的“非本地主机/127.0.0.1”地址列表,以便在本地调试时通过本地网络访问它?

简短回答:没有

详细回答:您可以迭代服务器IP地址,但这对您没有帮助,因为这些可能是本地网络上的内部IP地址(例如
10.29.38.47
),并且由防火墙映射(NAT'd),因此从Web上看,服务器的IP地址是不同的(例如
192.0.2.5

即使您使用诸如查找外部地址之类的服务,它仍然只会提供许多潜在地址中的一个


如果您希望服务器代码能够为自身构建完全限定的URL,则需要在配置文件中指定该URL,并从中读取值。

谢谢,我知道这一切,也许我在Q中不够专业。我的意思只是为了本地调试,它足以覆盖除127.x.y.z之外的任何旧本地IP,或本地可访问的除“localhost”之外的任何旧域名。我升级了我的Q top be more Spesific您的代码将使用用于访问webapp的URL来构建合格的URL。如果您不想让它显示
localhost
,则不要使用
localhost
访问webapp。例如,如果您的电脑名为
MyWorkPC
,请使用
http://MyWorkPC:8080/MyApp
。我怎么可能听不到呢!谢谢,我现在可以忘记这个问题了。