Java
故渊池鱼
道阻且长,行则将至
展开
-
Springboot监听ConfigMap配置文件自动更新配置
参考网上各位大神的关于spring-cloud-starter-kubernetes-config的配置,一直未能实现业务配置热更新,k8s在v1.19之后已经改为其他方式了,其他开源方案过于复杂,遂改换思路,简单点,就用java最原始的文件变更监听来手动刷新配置。主要用到Springcloud的ContextRefresher.refresh()方法,可能有的配置不需要更新,这里就需要根据实际业务逻辑来决定要更新哪些配置了。补充下,刷新配置不是修改后立即执行的,是有时间间隔的,可以配置,自行研究吧。原创 2024-05-08 15:09:12 · 676 阅读 · 1 评论 -
Java实现PDF转HTML
实现原理是PDF文档先转为PNG图片,然后进行图片拼接,拼接后的图片转为base64字符串,然后放入html文档。此方案会导致文档增大,比如100多KB的PDF文档转换HTML后会超过2MB。引入maven依赖<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.2转载 2021-06-25 15:17:09 · 6081 阅读 · 0 评论 -
Springboot整合Swagger2问题记录
在Springboot整合Swagger2的过程中,遇到的一些问题记录。环境信息:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <ver...原创 2020-04-13 10:59:45 · 1255 阅读 · 0 评论 -
Springboot项目jar程序启动停止shell脚本并根据启动日志判断是否启动成功
Springboot项目jar启动停止shell脚本系统开机启动可参考《Linux下部署springboot项目jar包开机自启》以下脚本,包含功能启动程序时根据项目启动日志判断是否启动成功 停止程序时查询进程是否存活来判断停止成功 指定端口号启动jar 指定字符集,时区,环境启动jar#!/bin/sh# kconfig: 2345 85 15# description...原创 2020-03-25 16:05:32 · 3202 阅读 · 6 评论 -
Linux下部署springboot项目jar包开机自启
Linux下部署springboot项目jar包开机自启Linux版本 Centos7详细步骤如下:1、在/etc/init.d/目录下创建shell启动脚本autojar.shcd /etc/init.d/touch autojar.shvi autojar.sh内容如下:#!/bin/sh# chkconfig: 2345 85 15# descripti...原创 2020-01-10 14:36:15 · 2771 阅读 · 4 评论 -
IDEA中用本地tomcat启动项目成功但访问404的问题
IDEA中用tomcat启动项目war包日志显示部署成功,但访问项目却一直404,在本地tomcat的webapps目录下确实也没有项目。成功日志如下:检查idea中tomcat配置如下图:默认情况下,tomcat会把项目部署在target目录下,不会放到自己的webapps中。解决方法:网上搜索方法很多,但各种尝试之后,本人这里只有以下方法可行:修改Outp...原创 2019-11-08 16:54:14 · 12657 阅读 · 1 评论 -
log4j启动报错问题解决
项目用tomcat启动时,控制台报如下错误,虽然不影响业务正常使用,但还是要把它解决。"org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variableCould not instantiate appender named "Console".lo...原创 2019-11-08 09:57:38 · 4543 阅读 · 0 评论 -
Java实现比较APP版本号大小
实现代码如下:/** * 比较APP版本号的大小 * <p> * 1、前者大则返回一个正数 * 2、后者大返回一个负数 * 3、相等则返回0 * * @param version1 app版本号 * @param version2 app版本号 * @return int */ ...原创 2018-09-17 16:58:28 · 11493 阅读 · 4 评论 -
java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class
基于jdk6的工程,在tomcat中部署之后,运行抛异常:2014-11-25 17:22:48 org.apache.catalina.startup.HostConfig deployDirectory严重: Error deploying web application directory spdbcccWeChatjava.lang.UnsupportedClassVersio原创 2014-11-26 09:14:47 · 957 阅读 · 0 评论 -
Content-Type引发的服务端收不到HTTP请求参数的问题
问题现象:前端POST请求参数已经传过来了,Java后端Debug也能进到请求里,可就是取不到请求参数。用Chrome 开发者工具可以看到请求的不同:可以看到请求参数一个在Form Data中,一个在Request Payload中,而且格式也不同。不同的原因就在于Content-Type设置不同。HTTP Content-Type原创 2017-12-05 11:45:59 · 29844 阅读 · 3 评论 -
Java获取IP地址 IPUtil.getRemoteIp(request)
适用于获取访问IP,代码如下:public static String getRemoteIp(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equals原创 2016-07-05 14:06:08 · 5537 阅读 · 0 评论 -
org.apache.commons.net.io.CopyStreamException: IOException caught while copying
在用FTPClient上传文件时遇到异常,异常内容如下:2016-04-18 19:20:24.055 [Thread-47] ERROR com.al.crm.channel.bmo.impl.CrmSynBMOImpl [1201] - 增量文件同步异常:org.apache.commons.net.io.CopyStreamException: IOException caught原创 2016-04-19 14:43:58 · 20851 阅读 · 1 评论 -
java内存溢出和内存泄露
虽然jvm可以通过GC自动回收无用的内存,但是代码不好的话仍然存在内存溢出的风险。一、为什么要了解内存泄露和内存溢出? 1、内存泄露一般是代码设计存在缺陷导致的,通过了解内存泄露的场景,可以避免不必要的内存溢出和提高自己的代码编写水平; 2、通过了解内存溢出的几种常见情况,可以在出现内存溢出的时候快速的定位问题的位置,缩短解决故障的时间。二、基本概念 理转载 2016-04-11 15:15:57 · 491 阅读 · 0 评论 -
setCharacterEncoding编译报错
从svn上download一个项目到myEclipse后,项目报错,打开出错的java文件,response.setCharacterEncoding("gbk");jar包已导入,提示如下错误:The method setCharacterEncoding(String) is undefined for the type HttpServletResponse简单说来就是set原创 2014-11-26 10:16:23 · 10374 阅读 · 1 评论 -
线程阻塞的原因
线程阻塞的原因导致线程阻塞的原因主要由以下几方面。1、线程执行了Thread.sleep(int n)方法,线程放弃CPU,睡眠n毫秒,然后恢复运行。2、线程要执行一段同步代码,由于无法获得相关的同步锁,只好进入阻塞状态,等到获得了同步锁,才能恢复运行。3、线程执行了一个对象的wait()方法,进入阻塞状态,只有等到其他线程执行了该对象的notify()或notif转载 2014-03-23 23:21:30 · 12851 阅读 · 0 评论 -
java错误ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
在使用eclipse编译以上java程序时,出现错误提示:ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:820]原创 2014-09-24 16:59:34 · 4198 阅读 · 1 评论 -
面试题-设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。原创 2014-09-24 17:10:54 · 5044 阅读 · 0 评论 -
Java调用取得天气预报WebServices
Java调用取得天气预报WebServices1、天气预报web services地址 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl用浏览器打开此地址,保存页面为Weather.xml2、新建一个java工程 webservices建立包名 com.test.ws 将Weather.转载 2014-06-26 17:07:40 · 1296 阅读 · 0 评论 -
Could not obtain transaction-synchronized Session for current thread
在用spring 4.1.2 + hibernate 4.2.0开发时,调用getSessionFactory().getCurrentSession()方法报异常:org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread异常原因:原创 2016-08-22 17:42:29 · 559 阅读 · 0 评论 -
Jmeter启动提示WARNING: Could not open/create prefs root node
今天第一次用Jmeter测试服务器性能,用jmeter.bat启动时总是有warning提示:WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.原创 2016-11-30 17:52:06 · 20114 阅读 · 4 评论 -
启动项目卡在 [INFO] Initializing Spring FrameworkServlet 'spring'
启动项目的时候一直卡在 [INFO] Initializing Spring FrameworkServlet 'spring' 不动,也没有报其他的错误,以下是部分日志:2016-12-01 10:41:31,075 main DEBUG Shutdown hook enabled. Registering a new one.2016-12-01 10:41:31,076 main DE原创 2016-12-01 11:01:22 · 15212 阅读 · 2 评论 -
Maven已配置M2_HOME环境变量Myeclipse还是报错
Maven已配置M2_HOME环境变量,运行时在Myeclipse里还是报错:-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.解决办法: 1.确认添加M2_HOME的环境变量原创 2016-05-11 15:55:58 · 3689 阅读 · 1 评论 -
jstl标签c:if显示性别
男checked="checked" />女checked="checked" />原创 2014-10-22 12:39:15 · 5835 阅读 · 0 评论 -
EL表达式与JSTL标签的使用
用户名 姓名 年龄 性别 电话 操作 ${f.username}原创 2014-10-22 13:54:12 · 3712 阅读 · 0 评论 -
BeanUtils.populate的作用
首先,它是在org.apache.commons.beanutils.BeanUtils包中的一个方法。方法的作用:用来将一些 key-value 的值(例如 hashmap)映射到 bean 中的属性。servlet中有这样的使用:先定义form表单内容的Info对象(当然你要先写一个bean,这个bean中包含form表单中各个对象的属性) InsuranceIn转载 2014-10-22 15:11:27 · 9215 阅读 · 0 评论 -
JSONObject、JSONArray结合Map的使用案例
1、Service中的实现方法:JSONObject中有字符串,有JSONArray数组,而JSONArray数组中还有JSONObject。/** 根据账号查询所持有的卡列表 * @param weChatId * @return * {"Return":true,"list":[{"cardNo":"4047390001058975","cardtexts":"4047原创 2014-11-19 17:26:39 · 5371 阅读 · 0 评论 -
shiro配置好后,页面登录成功会自动重定向/favicon.ico
问题描述:今天给浏览器页面加上logo文件 /favicon.ico,类似上图。文件放在 static/common/images 路径下,页面 head 里加上浏览器可以成功显示 favicon.ico,但是在第一次登陆成功后会自动重定向到 /favicon.ico 文件的路径。网上的解决办法:基本大多数浏览器都会请求 favicon.ico 这个图标原创 2016-11-30 19:14:39 · 9481 阅读 · 0 评论 -
ajax传输json数据遇到不执行success方法也不报错的问题
ajax传输json数据遇到不执行success方法也不报错的问题问题描述:ajax请求时,服务端返回json数据格式,但是Http响应中Content-Type不是application/json,而是text/xml,此时页面端调试network获取到了response数据,但是无法进入ajax的success方法中,也不报错。解决方案:1、服务端设置respons原创 2017-08-26 18:15:25 · 2699 阅读 · 3 评论 -
@Value取不到值,直接输出了${name}字符串
项目中经常会用到配置文件,定义成properties的形式比较常见,为了方便使用一般在spring配置文件中做如下配置:这样在程序代码中直接用@Value("${name}"),就能直接取到properties文件中定义的变量值。但是在项目中发现一个情况,在Controller中取不到这个值,直接输出了${name}字符串,并没有解析出值,而在service中却能取到。明显转载 2017-01-09 14:09:49 · 10679 阅读 · 0 评论 -
秒转化为天小时分秒字符串的java实现和js实现
需求描述:将秒转化为天小时分秒字符串显示,例如:3660s --> 1小时1分0秒java实现:/** * 秒转化为天小时分秒字符串 * * @param seconds * @return String */ public static String formatTime(long seconds) { Str原创 2016-12-06 09:25:50 · 3920 阅读 · 1 评论 -
揭开Socket编程的面纱
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmi转载 2014-03-16 00:29:41 · 676 阅读 · 0 评论