配置Spring Boot以侦听localhost旁边的请求

时间:2017-01-10 00:22:56

标签: java spring tomcat networking spring-boot

我与宿舍子网连接。我有2台带外部ip地址的机器。 (我可以ping它们或通过SSH连接它们)运行ubuntu伙伴的Raspberry Pi托管我的Spring Boot服务器和运行Windows 10的其他机器。问题是Spring服务器不响应宿舍网旁边的任何来源的请求( DW)。我发现问题是8080端口关闭。当我从DW旁边扫描开放端口时,我只能看到22个端口打开,DW内的计算机看到8080和22个端口打开,并且能够响应HTTP服务器。

从我所读的here开始,我必须将server.address属性设置为可从“outside”访问

我的spring application.properties

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '[%(asctime)s];[%(levelname)s];[Proc:%(process)d];[Thread:%(thread)d];%(module)s-%(funcName)s:%(lineno)d;Msg:%(message)s;'
        },
        'simple': {
            'format': '[%(asctime)s] [%(levelname)s] %(message)s'
        },
    },
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'filename': LOG_FILE,
            'when': 'midnight',
            'interval': 1,
            'backupCount': 365,
            'formatter': 'verbose'
        },
        'null': {
            'level': 'DEBUG',
            'class': 'logging.NullHandler',
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'filters': ['require_debug_false']
        }
    },
    'loggers': {
        APP_NAME: {
            'handlers': ['console', 'file'],
            'propagate': True,
            'level': 'INFO',
        },
        'django': {
            'handlers': ['mail_admins', 'file'],
            'level': 'ERROR',
            'propagate': True,
        },
    }

我确信服务器正确读取了这个文件。

我也试过暂时关闭防火墙

#mysql test config
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver`
spring.jpa.show-sql=true

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy

#initialization
spring.datasource.schema=classpath:/data/schema.sql

#server
server.address= my.adres.here
server.port = 8080

检查它是否阻止此端口上的连接,但这不是问题。

我不确定真正的问题可能在哪里进行了本地化。 Spring Boot配置有问题吗?或许这可能是一些网络问题。

1 个答案:

答案 0 :(得分:1)

正如@Robert Masen所说,问题是8080端口上的宿舍网络阻塞连接。