java
文章平均质量分 58
ColdFireMan
这个作者很懒,什么都没留下…
展开
-
【ThreadLocal】单线程反射方法传参使用ThreadLocal
参考使用ThreadLocal业务场景在一个线程中,需要使用反射的方式去调用某个类的方法,如:String randomStr = "ugefqbfl";//获取类对象Class clazz = Class.forName("com.xxx.Test");//实例化对象Object o = clazz.newInstance();//获取想要执行的方法Method execute = clazz.getDeclaredMethod("execute", String.class);/.原创 2021-09-10 16:47:10 · 480 阅读 · 0 评论 -
【工具类】测试目标设备网络是否可达
作用有时候我们需要监控两台设备设备之间的网络是否可达,或者到目的设备的指定端口是否可达。这个工具类可以用于简单的测试。import java.io.IOException;import java.net.*;import java.util.Enumeration;/** * 工具类,检测到目标设备或者是目标设备的端口是否可达 */public class NetTestUtils { /** * 测试到指定IP设备的端口是否可达 * @param ip 目标原创 2021-02-23 23:03:30 · 269 阅读 · 0 评论 -
【exception】java.lang.NoClassDefFoundError Could not initialize class
现网有一个程序,之前是正常的,替换包以后,发现出现这个异常,写一下排查过程过程这个类、这个程序在本地的IDEA中没有问题,编译是正常的,怀疑是正式环境和测试环境有区别。仔细查看日志,查找问题点。结果发现在一堆报错的中间,有一个不同的报错,是找不到某个类。在IDEA中查看找不到的这个类,发现这个类GSON,版本是2.8.5,查看现网。因为现网的依赖库都是放在jar包外的lib目录下,进入lib目录,发现GSON包版本是2.2.4。将gson包替换后重启,问题解决。反思发生异常的类用到了g.原创 2020-09-30 16:45:55 · 3078 阅读 · 0 评论 -
【exception】cxf can‘t find request url for Observer
框架是springboot+shiro,在登录页面输入账号密码后点击登录,登录没生效,后台日志发生报错解决方法:原来是/*,拦截了所有请求,需要修改成实际的路径 @Bean("cxfServletRegistration") public ServletRegistrationBean dispatcherServlet() { //注册servlet 拦截/ws 开头的请求 不设置 默认为:/services/* return new Servlet.原创 2020-09-24 11:31:02 · 533 阅读 · 0 评论 -
【charset】字符串和字符集的理解
今天在写socket接口的时候,需要接受数据,对数据处理完以后需要发送到别的地址。因为接受和发送的数据字符集不同,所以中间需要处理字符集。以前对这个不是很清楚,今天在写的时候发现了两点,做一下总结。本人做Java开发,所以都是用Java举例。字符串首先明确一点,Java的String类型,是没有字符集的概念的,字符串就只是字符串。比如:String str = "这是一个字符串ABC";字符集举常见的GBK和UTF-8,需要用到字符集的地方,一般是接收数据和发送数据的时候,你想要把字节数组按.原创 2020-07-08 17:44:59 · 962 阅读 · 0 评论 -
【spring cloud stream】spring cloud stream配置多个kafka地址
网上查找了关于配置多个kafka地址的方法,可惜没有找到,在一个博客看到了这个方法,大致方法是对的,但是还是有小错误,导致失败。所以自己修改完亲测有效后,写了这个博客。spring: cloud: stream: binders: # 接下来的kafka1和kafka2就是两个kafka broker的环境配置,配置完成后可以应用kafka1、kafka2这个定义的名字 # 在别的地方引用。功能和profile中的dev环境、test环境、prod原创 2020-07-06 13:59:11 · 2178 阅读 · 0 评论 -
【Java】关于对System.getProperty中user.dir的理解
字面解释System.getProperty(“user.dir”)方法返回的是执行运行Java程序命令的路径。这句话有一点歧义,还是通过举例说明最合适。举例用两个用户,一个是root,一个是普通用户userone,可运行jar包在/home/userone/下面,有一个运行该jar包的sh脚本也在/home/userone/下面。可运行jar包内就是打印System.getProperty...原创 2020-05-07 11:02:54 · 11614 阅读 · 3 评论 -
【BlockingQueue】BlockingQueue接口方法说明和区别
BlockingQueue在异步处理的时候经常用到它的存放和取出数据的操作,但是如存放也有add、offer等多个方法,这些方法有什么区别,这边用LinkedBlockingQueue作为实现测试一下。存放先上方法:boolean add(E e);boolean offer(E e);void put(E e) throws InterruptedException;boo...原创 2020-04-22 10:48:07 · 313 阅读 · 0 评论 -
【exception】用Java的JAXBContext解析xml线程阻塞问题
现象在用JDK自带的JAXB解析xml时发现执行线程卡住了,没有抛出异常。原因JDK9及以上的包中已经没有JAXB的API,需要自己手动在pom.xml中添加。解决方法在pom.xml中添加依赖:<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-...原创 2020-04-10 14:35:12 · 455 阅读 · 0 评论 -
【logback】logback输出日志屏蔽quartz的debug等级日志
在一个spring的老项目中,使用了logback来作为日志管理,logback.xml中已经设定日志输出等级为INFO,但是quartz的日志还是debug级别在输出,导致日志内容很多很乱解决方法在标签内加上,如:<configuration debug="false"> ... <logger name="org.quartz.core.Quartz...原创 2020-04-08 09:08:52 · 3146 阅读 · 0 评论 -
【springboot新手向】用springboot搭建一个简单的web项目
用springboot框架搭建一个简单的web项目,可以返回页面或者ajax请求的结果。用mybatis-plus查询mysql数据库。完整代码地址:cat创建一个maven项目pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...原创 2019-11-24 01:25:58 · 1084 阅读 · 0 评论 -
【错误】weblogic错误汇总
安装错误此平台上不支持OpenJDK JVM。原因安装的是openjdk,而不是oracle的jdk解决去oracle官网下载一个linux的包,上传后重新安装原创 2019-10-29 13:54:19 · 1457 阅读 · 0 评论 -
【@Scope】@Scope的使用方式
详情见spring文档说明scope翻译就是范围的意思,从名字看就是定义这个bean的作用范围。从文档中说明有5个值可以使用。@Scope(“singleton”)该注解的默认值,表示这个bean在spring容器中是单例的,我们通过spring容器获取这个bean的时候,都是对一个对象进行操作。@Scope(“prototype”)表示这个bean在容器中不是单例的,每次...原创 2019-09-06 11:50:23 · 2360 阅读 · 1 评论 -
【@Import】@Import注解使用方式
使用方式直接注入新建一个Man类,不加注解,不在启动时注入到spring IOC容器中public class Man { public void say() { System.out.println("I am a man."); }}新建一个Woman类,不加注解,不在启动时注入到spring IOC容器中public class Woman ...原创 2019-09-04 16:13:55 · 491 阅读 · 0 评论 -
【exception】文件存在但是抛出FileNotFoundException
还原现象从公司的SVN上来下来代码,运行main方法后发现抛出FileNotFoundException异常,将文件的路径打印出来以后,发现路径的中间有中文转化后的%2%4之类的字符串解决方法将项目放到不带中文的路径上就可以正常运行...原创 2019-09-03 15:36:23 · 1519 阅读 · 1 评论 -
【@Conditional】@Conditional注解使用方法
举例通过Condition可以自定义注入bean的条件,如:注入一个MyService的bean,前提条件是JdbcTemplate这个bean要注入成功,代码如下:条件类public class JdbcTemplateCondition implements Condition { @Override public boolean matches(ConditionC...原创 2019-08-28 22:55:24 · 574 阅读 · 0 评论 -
【exception】springboot多模块jar包启动失败
重现今天一个多模块的springboot用maven打成jar包,使用 java -jar 命令启动失败,报错是//中文提示xxx.jar中没有主清单属性//英文提示no main manifest attribute...原因maven的打包错误,没有指定main方法入口类,可以看jar包里面META-INF\MANIFEST.MF正常的内容Manifest-Versio...原创 2019-08-09 16:57:21 · 895 阅读 · 0 评论 -
【Java】springboot中URL带有斜杠的转义字符百分之2F导致的400错误
今天项目上出现一个问题,是前端的GET请求url中带有路径参数,这个参数中有/这个特殊字符,前端已经转移成了%2F,后端用的是springboot,并没有收到这个请求,直接返回了400的错误原因据说是tomcat默认是不支持转义的,需要手动设置一下转化,这个搜索tomcat的设置可以找到,但是这个是springboot,有内置的tomcat,但是在yml中找不到相关的配置。解决方式修改...原创 2019-01-19 14:45:59 · 21947 阅读 · 4 评论 -
【exception】Could not read document Invalid UTF-8 middle byte 0x3f
今天开发完功能后打包部署到服务器后页面操作出现这个问题,花了点时间分析解决了,记录一下问题描述在本地开发测试的时候没有问题,但是打成jar包放到windows server运行后,在页面点击,调用接口抛出了这个异常。一开始以为是数据库中出现了特殊字符,用本地连接测试数据库发现没有问题,所以不是数据库的问题。所以分析是前后端编码和解码的问题。F12检查发现前端发送的是UTF-8的数...原创 2018-11-20 18:41:19 · 7145 阅读 · 7 评论 -
【Java】Observer和Observable实现观察者模式
今天看到一段代码很有意思,因为以前没有接触到过这两个类,所以简单的学习一下观察者模式我的理解就是有观察者和被观察者两个角色,当被观察者执行某些操作被观察者观察到后,观察者也做出相应的操作。我今天看到的代码是有个被观察者是一个单子,当这个单子的内容被更新的时候,将这个情况通知观察者,观察者是一个rest请求的发送器,观察者就会把这个单子变化的情况推送到其他需要知道单子被修改的地方。刚开始看...原创 2018-11-09 14:07:38 · 501 阅读 · 0 评论 -
【Java】Future和Callable
Future和Callable是多线程中常见的两个类,在Java并发编程实战中有多次提及,写了一个demo演示一下类的作用Callable了解线程肯定知道Thread这个线程类,但是一般实现自定义的线程的时候都是实现Runnable这个接口,重写抽象方法run()的。但是这个run()方法是没有返回值的,有的时候我们需要做异步操作,而且需要得到这个操作的返回值,这个时候Callabl...原创 2018-11-09 11:43:11 · 240 阅读 · 0 评论 -
【utils】基于jackson的解析转换JsonUtil
jackson version: 2.8.6/** * @description json工具类,依赖jackson * @author paul * @date 2017年7月10日 上午10:54:43 * @update 2017年7月10日 上午10:54:43 * @version V1.0 */public class JsonUtil { private s原创 2017-07-10 12:48:24 · 2402 阅读 · 0 评论 -
【exceptions】java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to xxxxx
这个问题是我在用jackson将字符串准换成指定对象的List,转换的时候没有异常,但是通过for循环拿出对象使用的时候出现的问题.原来我的转换是写在controller里面,后来为了通用准备写到工具类中,但是发现一个问题,就是在controller中可以正确转换并在service中使用,通过工具类来获取后就在service中使用出抛出这个异常.controller中的处理// json解析器O原创 2017-08-12 14:37:52 · 22448 阅读 · 3 评论 -
【Java】Java遍历删除集合中的元素
在循环遍历集合并进行删除功能的时候,要用到迭代器Iterator<E> it = list.iterator();//这里的list指某个集合while (it.hasNext()) { E e = it.next(); if (XXX) //删除规则 it.remove(); //注意,这里要用的是迭代器的remove()方法}原创 2017-06-15 14:30:33 · 349 阅读 · 0 评论 -
【Java】Java中复制/克隆(Clone)一个对象
在开发过程中,可能会遇到我们需要一个和某个对象一样数据,但是不是同一个内存地址的新对象,这个时候就需要用到Clone()了. 不过要注意,Clone()分为浅拷贝和深拷贝.区别在于要拷贝的对象是否有非基本变量准备复制的对象代码public class CloneMan { /** * @fields id 克隆人id */ private int id原创 2017-06-15 14:44:26 · 874 阅读 · 0 评论 -
【Java】Java根据路径获取图片偶尔会得不到图片问题的解决方法
在保证图片路径正确的情况下,可能是获取图片流的方式不对. 我在用Java.awt.*相关的包调用系统打印机进行打印的时候,会出现打不出图片的情况, 这个时候换一种读取图片的方式就可以了//这种方式会出现偶然丢失图片的情况,有的时候打得出来有的时候打不出来//Image image = ToolKit.getDefaultToolKit().createImage("eg.jpg");原创 2017-06-15 14:51:27 · 2534 阅读 · 0 评论 -
【Java】Java中Integer和int比较大小出现的错误
Java的Integer类有一个内部类,缓存着一个常量池.private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; static { // high value may be原创 2017-06-15 14:55:22 · 2455 阅读 · 0 评论 -
【Java】Java中判断进行数据库批量操作是否成功
第一种的方法是跟同事学的int[] result = Db.batchSave(list, list.size());for (int i : result) { if (i < 0 && i != Statement.SUCCESS_NO_INFO) return false;}return true;第二种是我自己想的//JFinal中是用Db完成的int[] resul原创 2017-06-15 14:58:02 · 4151 阅读 · 1 评论 -
【Java】获取当前方法的方法名
有的时候需要知道当前执行的方法的方法名, 方法如下:String method = Thread.currentThread().getStackTrace()[1].getMethodName();原创 2017-10-09 14:48:18 · 3529 阅读 · 0 评论 -
【Java】Java中webservice的简单理解
最近到了新公司, 需要开发webservice接口. 以前只开发过http形式的接口, 学习了一些后总结一下发布学习心得什么是webservice具体的底层是什么不知道, 学习下来自己的理解就是一个client和server之间通过socket通信的方式. server将可以提供的服务接口发布出来, client通过server发布的wsdl得到可以使用的接口代码的处理类, 然后在client中直接原创 2017-10-09 15:25:03 · 442 阅读 · 0 评论 -
【utils】java中调用cmd实现把jar包导入maven管理
在做接口开发常用的工具类项目, 想要在java中调用cmd来实现一些命令, 这里是把一个存在的jar包导入到maven中管理代码public static String addJar2Maven(String path, String groupId, String artifactId, String versionId, St原创 2017-11-10 15:15:40 · 519 阅读 · 0 评论 -
【utils】通过枚举中的某个字段值获取枚举的EnumUtil工具类
有的时候遇到这种情况 , 我们有枚举的其中一个字段的值 , 然后通过这个值获取枚举或者其他字段的信息 , 如果没有工具类 , 就需要在每个枚举中添加相应的方法 , 通过工具类的方法可以减少代码量 , 更加简洁美观创建一个接口 CommonEnum/** * 枚举接口 */public interface CommonEnum { int getValue();}枚举实现这个接口/**原创 2017-12-18 09:25:02 · 8455 阅读 · 0 评论 -
【utils】用于前端展示树结构的工具类
应用场景 : 有的时候 , 前端需要展示出一个分类以及这个分类下的子分类 , 一层一层形成树结构定义节点首先定义每一个类型为一个节点 , 定义它的必要属性package com.starw.cloudy.utils.treeTools;import java.util.ArrayList;import java.util.List;/** * 节点 */public class Node原创 2017-12-22 17:07:51 · 780 阅读 · 0 评论 -
【exceptions】com.alibaba.druid.sql.parser.ParserException: Error : LBRACKET
用sql查询的时候出现这个错误com.alibaba.druid.sql.parser.ParserException: Error : LBRACKET at com.alibaba.druid.sql.parser.SQLParser.as(SQLParser.java:87) at com.alibaba.druid.sql.parser.SQLSelectParser.pa原创 2017-12-27 10:25:24 · 11823 阅读 · 0 评论 -
【exceptions】简单异常汇总
今天在接口的开发中遇到一个问题,把对方表中的数据导入到本地数据库的时候mybatis抛出这个错误原因对方的数据中一个时间的字段中存在错误的数据0000-00-00 00:00:00mybatis插入数据库的时候发现解析后的时间年份小于公元后1年,抛出了这个异常PS异常中的AD意思就是公元后的意思,所以异常的完整意思是:只能接受公元后范围的日期原创 2018-03-15 15:52:08 · 3255 阅读 · 0 评论 -
【utils】将指定的mysql数据库中的表生成java实体类
开发的过程中需要将数据库中的database中的tables和java中的对象一一对应,如果自己写很麻烦,借助小程序可以快速生成import java.io.File;import java.io.FileWriter;import java.io.PrintWriter;import java.sql.Connection;import java.sql.Database...原创 2017-08-18 17:43:50 · 3531 阅读 · 9 评论