如何配置集成了Spring的嵌入式Tomcat来监听除了localhost之外的IP地址的请求?

16 浏览
0 Comments

如何配置集成了Spring的嵌入式Tomcat来监听除了localhost之外的IP地址的请求?

我正在尝试运行Spring指南中的例子:构建RESTful Web服务。\n如果我打开localhost:8080/greeting,它可以正常工作。\n但是,如果我打开192.168.1.111:8080/greeting140.112.134.22:8080/greeting,尽管这两个IP实际上是我电脑在互联网上使用的,但它无法建立连接。\n有人能告诉我如何配置Spring中的嵌入式Tomcat以接受除localhost(即127.0.0.1)之外的其他IP地址的HTTP请求吗?\n谢谢! 🙂

0
0 Comments

问题原因:防火墙或代理可能阻止了与IP地址的连接。

解决方法:

1. 尝试在Java参数中添加以下内容:

-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false

2. 使用curl运行查询:

curl -vvv -X GET "http://192.168.1.111:8080/greeting"

如果第一种方法无效,则很有可能是防火墙或代理阻止了连接。curl命令应该会给出相应的提示。

0
0 Comments

问题原因:配置嵌入式Tomcat集成Spring以监听除了localhost之外的IP地址的请求。

解决方法:只需在application.properties文件中添加以下内容:

server.address=0.0.0.0

文章内容如下:

简单地在application.properties文件中添加以下内容即可配置嵌入式Tomcat集成Spring以监听除了localhost之外的IP地址的请求:

server.address=0.0.0.0

0
0 Comments

如何配置嵌入式Tomcat与Spring集成以侦听除localhost外的IP地址的请求?

问题的原因:默认情况下,Tomcat将绑定到0.0.0.0并侦听所有可用的地址。如果其他地址或端口不起作用(例如防火墙),则可能存在环境限制。

解决方法1:在application.properties文件中添加以下内容来指定Tomcat绑定的IP地址和端口:

server.address=<your_ip>
server.port=<your_port>

替换<your_ip>为要侦听的IP地址。可以在Spring Boot参考指南附录A中找到此和其他基本属性。

解决方法2:通过实现EmbeddedServletContainerCustomizer接口,在代码中创建自定义配置器来配置嵌入式Tomcat。可以在Spring Boot参考指南第55.5-55.8节中了解更多信息。

关于application.properties文件的位置,Spring Boot首先会尝试在JAR中查找,然后在类路径中查找,最后在运行应用程序的本地目录中查找。可以在文档/参考指南中找到更详细的说明。

此链接解释了Spring Boot属性的加载方式。可以通过命令行参数、外部yml或properties文件等多个位置传递配置信息。参考链接:docs.spring.io/spring-boot/docs/current/reference/html/…

在应用程序的src/main/resources目录下的application.properties文件中也可以指定IP地址和端口。更改了该文件中的端口后,重新启动Boot CLI,端口将生效。对于IP地址,还需要进一步尝试。

还可以在application.yml文件中通过server:和其中的address:指定IP地址。可以将其放在environments: / development:部分中。

我相信在Spring Boot 2中该属性仍然存在,并且仍然具有相同的功能。

0