当前分类:问题解决

dependencies.dependency.version missing问题解决

Spring Boot打算引入Redis但是导入依赖包之后却报如下错误

同时pom配置文件中位置,报如下位置:

解决方案

排查一:

是否引入了<parent>标签,如果未引入请引入,或者主动加上version

排查二:

是否dependences包含在了dependencyManagement标签内

排查三:

其中网上搜索了一下很多答案集中在是否引入了parent,但是parent是完整引入的,最终发现原来是因为使用的Spring Boot 1.5,而Spring Boot 1.2之后不再支持spring-boot-starter-redis,更换之后就OK了,至于这两个有何不一致,没什么不一致,为何名称变了,大概可能是为了统一,记录一下,如果遇到的小伙伴麻烦检查一下,是否将 spring-boot-starter-data-redis 写成了spring-boot-starter-redis 。

解决Error: pg_config executable not found问题

最近安装sentry时,需要安装postgresql,但是安装过程中报如下问题

最终查看pg_config是存在的

但是path里面没有,直接导入pa_home中bin目录的所有命令解决

解决SOAP客户端在请求https时设置超时时间无效导致进程卡死问题

目前有一个进程服务脚本是不断查询渠道的接口,但是历史问题是有时订单量大的时候进程会卡死,这次遇到了进行排查一下:

首先获取该进程ID

strace查看该进程正在持续的状态

lsof查看进程的所使用的文件

可以发现最终是停留在https的链接建立,等待获取数据,查看此处代码

当前版本php较老,这里是有个bug的在https链接请求时SOAPClient的超时时间是不生效,最终采取如下方案解决此问题:

复写SOAPClient,在https时候使用curl来完成请求解决问题

解决PHP7下Session callback expects true/false return value in 问题

升级项目致PHP7遇到Session报警告,既然升级新版本,警告什么的肯定要一起都处理了

经过跟踪排查,发现是到session_start这一步遇到问题,session_start()使用你之前通过session_set_save_handler(….)方法设置的处理器,现在PHP7要求必须返回true/false,所以你需要检查一下你的这些处理器方法是否准确返回true/false了

session_start() uses any handlers you’ve previously set with session_set_save_handler(…), and that handler (or the individual functions) must return a true/false result to signal success or failure. You have a handler that does not return a true/false result. To recap; the actual error is the implementation of your session handler, not the code that calls session_start().

记录Linux系统邮件mail无法发送问题

很多应用,比如wordpress使用PHP的mail函数,将会调用系统邮件发送功能,这时候邮件无法发送该如何排查呢?

  • 安装sendmail来发送邮件

  • 启动sendmail

可通过ps -ef | grep sendmail,观察是否启动成功

  • 测试邮件发送

如果没收到那么查看一下 /var/spool/clientmqueue下面是否存在未发送邮件,tail -f /var/log/maillog 查看邮件发送日志。

另外查看一下网络访问及25端口有无问题。

解决/var/spool/clientmqueue/文件过多问题并记录Linux下快速列出含文件较多文件夹的内容方法

最近发现sendmail的进程较多,观察了一下,是在消费/var/spool/clientmqueue/下的内容,这里面文件太多ls直接卡死了,那么如何列出来呢?

先后使用了ls、tree、find等命令,效果都不明显。

最后使用locate成功解决~

观察了一下至少有600多万个文件。。。

当你使用简单的sendmail发邮件的时候, 或者系统默认要发一些邮件(比如cron发的邮件)的时候,首先会把邮件拷贝到这个目录里,然后等待MTA(mail transfer agent) 来处理,MTA做的事情通常是把这个目录中的邮件弄到/var/spool/mqueue里,然后再发送到真正的目的地。出现/var/spool /clientmqueue/非常大的情况通常因为没有合适的MTA发送邮件,就都积累在这里了,假如这里的邮件并不是你需要的,你可以简单的删掉他们。

根据需要发邮件的内容来看,解决这块主要两点:

1、针对crontab一些输出之类的其会发邮件,需要定时任务后加上

2>是重定向错误

2、梳理业务逻辑控制发邮件频次

当然这两个前段时间都处理了一下,这次主要启用的机器有一些之前的邮件,所以删除了

xargs的功能:它将输入输出给xargs后面的命令,作为那个命令的参数

如果你感觉删的比较慢想先快速解决,那么先给他mv一下吧,把事情解决了,然后慢慢删

完事后记得重启一下sendmail sudo /etc/init.d/sendmail restart

Spring Tools报IOException: Server returned HTTP response code: 400 for URL记录

Spring Tools准备创建Spring工程时,报

这是因为IE为系统配置了代理,但是代理服务器没有开,所以优先检查IE->Internet选项->连接->局域网设置,不要勾选代理服务器,如还不行,检查eclipse的代理设置

解决eclipse遇到An internal error occurred during: “Building UI model”问题

尝试使用Spring Tools创建工程时遇到,An internal error occurred during: “Building UI model问题,这是因为STS版本与eclipse版本不匹配,以下两种解决方式可以处理:

方案一:在这里 “https://spring.io/tools/sts/legacy” 下载eclipse STS,下载前记得看一下eclipse版本

方案二:你不能在“eclipse Market Place”下载STS,因为eclipse会去找最新版本的STS,你可以点击Help->Install new software ,然后使用这个网址去下载 http://dist.springsource.com/release/TOOLS/update/e4.X/ (X替换为你的eclipse版本号)

解决启动Spring报java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy问题

这是JDK以特殊的方式告知你,在class path下找不到这个需要依赖的注解,很不幸的是他并不会告知你是哪个注解,或者是哪个类缺失。

可以检查一下依赖管理,尝试修复一下,maven工程使用mvn dependency:tree,gradle工程使用./gradlew dependencies