一个斜杠引起的血案

别名 spring boot 问题一则

项目中使用spring boot框架,需要使用外部配置,使用spring.config.location配置来进行目录设置,未设置具体文件。
具体脚本如下:

#!/bin/bash
BEH_HOME=$(cd `dirname $0`/..;pwd)
echo "$BEH_HOME"
JAVA_OPTS="-server -Xms512m -Xms4096m -XX:PermSize=256M -XX:MaxPermSize=512M\
 -Dlogback.configurationFile=$BEH_HOME/conf/rest/timeline-logback.xml\
 -Dspring.config.location=$BEH_HOME/conf/timeline/"
cd $BEH_HOME/share/timeline
#正常启动使用后台方式运行
nohup java $JAVA_OPTS -jar  BEH-Manager-timeline.jar > $BEH_HOME/logs/timeline-running.log 2>&1 &
#调试时使用前台方式运行
#java $JAVA_OPTS -jar BEH-Manager-Rest.jar

一次掉坑,通过官方文档解决问题。
官方文档链接:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

关键说明:

If spring.config.location contains directories (as opposed to files) they should end in / (and will be appended with the names generated from spring.config.name before being loaded, including profile-specific file names). Files specified in spring.config.location are used as-is, with no support for profile-specific variants, and will be overridden by any profile-specific properties.

这里在制定目录的情况下,强制要求要以/结束,此坑已经入过一次。
因为过于隐蔽,加上kerberos+加班,头晕脑胀,导致二次入坑,特此记录。
绝不三次入坑。

另1

帮耀蔚解决权限错位引起的问题一则,也比较诡异,特此记录。
程序应该以hadoop权限启动,所有的文件权限应该是hadoop用户权限。
但某次用root启动后,导致日志文件的权限变更。
应用程序发现日志文件不可写,直接报错退出。
日志文件没写入,导致没有日志可查,一直怀疑是配置文件的问题。
后通过直接执行java -jar,将log输出到console发现权限问题。

另2

agent logback配置文件写法注意,不能只指定路径,需要指定配置文件
-Dlogback.configurationFile=$BEH_HOME/conf/agent/logback.xml

#!/bin/bash
BEH_HOME=$(cd `dirname $0`/..;pwd)
cd $BEH_HOME/share/agent
JAVA_OPTS="-server -Xms256m -Xmx2048m -XX:PermSize=256M -XX:MaxPermSize=512M\
 -Dcom.sun.management.jmxremote.port=40124 -Dcom.sun.management.jmxremote.ssl=false\
 -Dcom.sun.management.jmxremote.authenticate=false\
 -Dlogback.configurationFile=$BEH_HOME/conf/agent/logback.xml"
#正常启动,使用后台方式运行
nohup java $JAVA_OPTS -cp lib  -jar BEH-Manager-Agent.jar -c $BEH_HOME/conf $* >> $BEH_HOME/logs/agent-running.log 2>&1 &
#调试的时候使用前台启动方式
#java $JAVA_OPTS -cp lib -jar BEH-Manager-Agent.jar -c $BEH_HOME/conf $*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值