自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 at java.net.URLClassLoader.findClass(URLClassLoader.java:382) 问题排查

解决java类加载的问题

2023-12-24 11:13:31 1006

原创 log4j2 xml 配置文件 屏蔽 第三方 依赖包 的日志

log4j 屏蔽日志

2023-12-14 13:47:28 705

原创 windows 下运行正常,但是linux下报错 : Could not find or load main class

使用指令 "sed -i 's/\r$//' xxxxxxx.sh",将 .sh 文件中的 "\r" 全部替换成空白符,即可解决问题。最后实验检测,运行脚本文件,hadoop进程全开,没有报错,验证通过。

2023-11-07 15:36:30 206

原创 统一对象消息编程下载

gitee仓库 :https://gitee.com/tianlong117/tlobject

2022-01-26 13:42:07 172

原创 IDEA运行拉下的maven项目某个类时,弹出编辑窗口

当Idea运行拉下或者新pull的maven项目的某个模块类时,第一次运行会弹出运行编辑窗口,一般是没有指定模块的类路径,指定即可,见图:

2022-01-05 10:22:42 1551 1

原创 Maven错误No compiler is provided in this environment

单独 maven 命令行编译时,提示“No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?”——发现之前没有正确设置JAVA_HOME,之前设置了指向 jre目录,而没有指向jdk目录。改为指向jdk目录即可 :C:\Program Files\Java\jdk1.8.0_102注:对于windows系统,设置环境变量后,命令行窗口重新启动变量才能起作用..

2021-11-27 16:01:21 6128

原创 netty搭建的websocket服务器发送大文件引起的问题

用netty搭建的websocket服务器,发现在发送大文件时,引起客户端断线,经看日志,发现发送大文件时,服务器没有发送回应客户端websocket的pong包,导致客户端自动断线。但是如果发送文件时,对于每次发包间隔一定时间,如延迟1毫秒,则不断线.。 之前对netty一知半解,用的代码基本都是网上现成的。经查资料(《Netty进阶之路-跟着案例学Netty(李林锋)》),原来netty开发服务器建议将netty的通道IO线程与业务功能分开,也就是对于业务单独用业务线程来处理,这样能释放...

2021-09-04 16:41:58 916

原创 okhttp3中websocket的发送时断线问题

在使用okhttp3中websocket来传送文件时,发现个问题,传送小文件正常,但是传送大文件,几秒钟就断线了 。但是如果每次发送都加一个时间间隔,如1毫秒,则正常传送,没有掉线。通过看具体执行类RealWebSocket源码:private synchronized boolean send(ByteString data, int formatOpcode) { if (!this.failed && !this.enqueuedClose) { ...

2021-09-04 15:47:06 1026

转载 mysql 按时间段统计(年,季度,月,天,时)

按年汇总,统计:select sum(mymoney) as totalmoney, count(*) as sheets from mytable group by date_format(col, '%Y');按月汇总,统计:select sum(mymoney) as totalmoney, count(*) as sheets from mytable group by date_format(col, '%Y-%m');按季度汇总,统计:select sum(mymoney) as to

2021-06-24 13:55:56 1413

原创 还能再简单么?——消息框架的嵌入jettyserver

开发框架最重要的功能是提高开发效率,没有框架,我们当然可以用基本的代码写出各种应用,但是这效率极低。开发效率是检验一个框架最重要的指标。 之前我开发总是启动tomcat,虽然这没有任何问题,但是从程序启动、部署都是比较麻烦的事情。虽然也曾想做个tomcat嵌入,但一直没有耐心去完成,直到遇到jetty。我欣赏jetty一个理念——服务器应该是程序的一部分。是的,这非常正确。服务器承担着网络接口,当然要作为程序的一部分,如果程序要依赖外在的接口,那不是完整的。框架有自己的服务器,那么许多都变...

2021-03-21 11:46:50 116

原创 大道至简--消息框架的程序启动

统一消息对象框架的应用启动流程非常简单,首先实例化模块工厂TLObjectFactory,模块工厂根据配置文件加载要启动的模块,模块根据自己的配置文件运行。那么对于一个基于我们消息框架的java应用的启动就很简单了。对于应用启动入口类,代码如下:public static void main(String[] args) { String configdir = "/conf/tlobjdemo/"; String path = pcclient.class.getRes...

2021-03-21 10:33:55 115

原创 如何优雅的编程——消息编程的分布式访问与微服务

我理解的布式访问与微服务是这样的,所谓分布式访问就是通过网络调用另一台机器上的模块或对象。所谓微服务,就是将一个程序的功能、模块拆解出来,放到另一台机器上运行,将一个大的程序拆解成小的服务单独运行,这方便系统的扩容及维护。 在传统编程模式中,实现分布式访问、模块拆解成微服务是比较麻烦的,根本原因是对象之间的强耦合。在消息编程中,因为对象主要是通过消息来传递信息,因此消息编程天生具有分布式和拆解微服务的优势。现在我们实例看看如何的实现。我们的实现要求:不修改代码就将一个程序中的模块拆解出来...

2021-02-17 19:19:04 244 2

原创 通过ssh隧道连接mysql

ssh -fN -L3307:127.0.0.1:3306 -p54231 [email protected] :本地服务器映射端口127.0.0.1:3306 :mysql 服务器ip 及端口 。本例sshd与mysql在同一台服务器上-p54231 : sshd 的端口username:ssh 登录用户名 及服务器ip...

2020-12-24 13:33:49 318

原创 AndroidStudio 暴力手动导入其他项目作为模块

问题背景 从网上下载了一个项目准备作为自己应用中的一个模块。之前做过一次,应该是很简单。首先下载了项目,本地测试、编译、运行,项目正常,没有问题,可以作为模块使用。根据模块的导入步骤:1、首先修改被导入项目的build.gradle ,由应用模式改为模块模式。 将apply plugin: 'com.android.application' 更改为 apply plugin: 'com.android.library'。 屏蔽 applicationId 项。 2、运行导...

2020-08-08 13:30:44 1268 2

原创 ppt打开提示以安全模式启动失败

有可能是ppt文件使用错误的加载项引起。1、打开word,选项-》加载项-》word加载项 转到-》 取消所有的加载 。2、然后打开PownerPoint(不要打开文件),在加载项中取消异常或所有的加载项。3、再打开ppt文件。...

2020-07-16 16:15:47 12449

原创 apache只允许合法域名访问而禁止通过IP、非法域名访问实现方法

虚拟主机配置文件 httpd-vhost.conf :# Virtual Hosts# 禁止所有非配置域名指向本服务器 。对于没有配置的域名默认指向第一个虚拟服务器<VirtualHost *:80> <Location /> Order Allow,Deny Deny from all </Location></VirtualHost># 合法域名<VirtualHost www.qinqin

2020-07-16 11:20:01 1386

原创 统一对象消息编程详解——一个基于netty的WebSocket服务器

netty是一个NIO的网络服务器应用框架,现在我们基于这个框架用消息编程的模式开发一款websocket服务器。该服务器有以下特征:1、基于netty框架2、基于tcp层的ssl加密传输3、用户认证,包括名字/密码认证及token认证4、传输数据编码为json。一、代码简介 1、实现的类 cn.tianlong.tlobjcet.network.w...

2019-10-12 17:06:32 250

原创 统一对象消息编程详解——线程与异步处理

对于java中的异步处理是用线程方式实现的,所以所谓异步处理或异步调用就是开启新的线程来执行一个过程。对象消息编程将异步(线程)处理变得异常简单。下面看我们是如何进行异步或线程调用。 对于消息编程,我们执行一个消息时,首先创建一个消息 TLMsg msg =New TLMsg() 或TLMsg msg =createMsg()(该方法包含在基本对象类TLBaseModul...

2019-10-06 18:07:34 191 1

原创 (重大)统一对象消息框架更新20191006

(由于本人这段时间忙于应用开发,在开发过程中边发现问题边对框架改进,由于时间较长,无法记起所有改进的地方,这里只列出记起的主要改进。)更新日志:1、为统一框架代码结构,将web开发包servletutils移至基本包tlobject下。2、为方便共享配置,简化配置文件内容,对于配置文件引入include项目用于引入其他文件的配置。对于框架基本包,设置不同的配置文件,针对具体应用可...

2019-10-06 16:40:45 96

原创 统一对象消息编程详解——定时任务模块命令行控制台改进

 之前文章介绍过统一对象消息编程详解——定时任务模块的命令行控制台 ,现在进行了改进,更方便的可以查看任务,包括任务状态,状态变化时间、上次执行时间、下次执行时间、执行次数。list/**** task list***/1. taskid: pcboy_play status: stoping(2019-02-02 22:03:13) lastexec:2019-02-0...

2019-02-02 22:04:59 124

原创 统一对象消息编程详解——日志模块

    一般情况我们无需特意设计日志系统, 有许多成熟的日志工具,例如用日志门面slf4j 、日志log4j等,在代码中直接使用即可。但为了灵活和方便,我们还是设计了日志模块——TLLog,模块是对这些工具的一个封装,主要是封装了slf4j,利用log4j2来记录日志。一般的日志工具只是对日志的级别可控,由TLLog来控制日志的输出更加的灵活,不仅可以控制日志输出的级别,还能对日志输出的类(模块)...

2019-01-27 18:51:29 157

原创 统一对象消息编程详解——定时任务模块的命令行控制台

      前面文字介绍了定时任务模块,我们可以通过配置文件的动态配置来控制任务的行为。由于配置文件的动态更新是所有配置参数都重新更新,对于多线程的,某些情况下会影响到其他任务。如我们对任务A进行了restart ,下次我们对任务B进行shutdown,如果我们忘记将A的状态改为run,则A再次restart。现在我们利用上篇文章介绍的命令行消息输入模块TLMsgScanner来创建定时任务的命令...

2019-01-27 16:41:17 245

原创 统一对象消息编程详解——命令行消息输入模块

   在很多情况下,程序需要命令行的输入控制,如更改参数、重启等。TLMsgScanner为命令行消息输入模块,可以通过命令行给任何一个模块发送消息。如启动了TLMsgScanner,则可以以下参数发送消息:  m=modulename  a=action   p1=value1   p2=value2  m:接收消息的模块    a:消息中的指令action   p1 、p2 为消息中的...

2019-01-27 15:45:17 169

原创 统一对象消息编程详解——定时任务模块

      在之前的文章《统一对象消息编程详解——通过分析定时任务模块来理解消息》中介绍了定时任务模块TLMsgTask。当时那个模块功能比较单一,只是简单周期任务的运行 ,现在对模块功能进行了改进,更加了定时任务的开启、停止等各项功能,并加进去了quartz 的cron表达式定时任务,完全实现了quartz的各种复杂定时。    为解析cron表达式,直接使用了quartz的类org.qua...

2019-01-16 16:39:05 247

原创 统一对象消息编程详解——访问控制机制

   对于一个框架的访问控制机制(或安全机制),我认为要满足以下两项:1、最大的灵活性      业务流程与访问控制应该是平行的两条线,一方面我们可以灵活的在业务线任何点上拆装访问控制,不应该受业务流程的约束,同时,对于业务流程来说,访问机制也是透明的。可比喻为如果业务流程是高速公路上的汽车,访问机制就是无形的栏杆,对于司机正常行驶来说看不到栏杆,但是他一旦超速,那栏杆立刻的显现出来。...

2019-01-04 17:16:16 232

原创 统一对象消息编程详解——通过分析定时任务模块来理解消息

      定时任务主要有两种定时,一种是指定某个时间点运行,比如某日的下午3点,另一种是固定周期的运行,比如间隔10秒去统计数据或查看订单。我们这里演示第二种周期任务。       有现成的各种工具类,包括java自带或者第三方工具,这些工具有个特点是你必须按它要求的任务模型编写任务或定制任务,不能对任意一个模块执行周期任务,这样就需要定制专门任务。我们看看如何通过消息对象编程而对任意模块、...

2019-01-03 20:32:20 189

原创 统一对象消息编程详解-——对象要有名字

      万物都有名字,通过名字来标识对方、传达信息。人有名字,物也有名字,“小王的汽车”、“小张的汽车” 就是车的名字,通过名字我们知道它们指向不同的事物,虽然车也许是一模一样的。但对于程序设计里面的数据、对象,我们从来没有想过给名字,这导致我们在对象互动中无比的麻烦。         例如 对象A构建了一个对象B,希望对象C、D、E都使用B,那么A就要把B的指针作为方法参数硬生生的传给C...

2019-01-03 16:05:17 152

原创 统一对象消息编程详解——模块工厂的价值

       以往我们需要一个对象的时候,通过new而建立一个,而消息框架用模块工厂统一创建对象。为何模块或对象要通过模块工厂创建,是不是多此一举。现在我们看个实例: 有A、B、C 三个对象,现在A、B对象各要调用C的m方法,通常是这样的,在A、B各种调用方法中: C c= new C(); c.m();功能实现了,比较不错。有天发现浪费内存,为何A、B都要自己new一个C呢 ...

2019-01-03 15:31:24 112

原创 统一消息对象编程web框架详解——框架单例实现原理

1、实现演变过程 消息对象框架启动顺序是首先启动模块工厂,然后工厂启动模块运行。在最开始用于web框架时,由于缺乏经验,我设计由每个线程单独启动一个工厂,然后工厂启动各个模块,线程结束时,工厂及所有模块销毁。这样实现功能是没有问题的,但是效率很低,因为每次一个客户端的request都要引起一个线程从工厂建立、模块初始化的过程。为了避免每次工厂和模块的初始化,借鉴数据库的连接池,我又...

2019-01-03 11:08:44 106

原创 消息对象web框架性能测试

在自己的工作电脑上测试下框架性能:电脑配置、软件环境:cpu i3-3220 内存:8G ;操作系统:win7 。tomcat9 标准安装 ,jdk8标准安装。tomcat 连接线程配置minSpareThreads="100" maxThreads="1000"测试页面:在前期入门文章介绍的“hello 消息编程“ 。页面流程为模块定义变量,veloci...

2019-01-02 19:24:56 159

原创 统一对象消息编程详解——包装其他类

     消息编程改变了传统编程的规则,以往我们通过对象的实例句柄来操纵对象,现在我们的对象有了名字,我们通过对象的名字去与对象互动,以往我们直接执行对象的方法,现在我们通过给对象传递消息由对象自己执行。   我们已有许多完善、实用、现成的各种工具类,我们不可能用消息编程的理念而重新开发这些工具,因此用消息对象包装现有的各种工具类是非常必要,而且必须的。  将传统的类改造为消息对象非常容易...

2018-12-29 21:17:59 118

原创 统一消息对象编程web框架使用简介

(更正说明:由于框架后来改动,主启动模块“appCenter”主要用于框架启动,不在作为用户模块,因此本文章中的“appCenter”名称可改为任意用户模块名称,功能不变。本案例中的urlmap缓存配置可取消&lt;afterMsgTable&gt;项,其他不变。——20190102) 在之前的文章中我大概介绍过我的消息编程web框架,代码与流程比较简单,因此本来没有写这个入门的打算。...

2018-12-29 15:24:58 249

原创 统一对象消息编程详解——热部署与动态配置

       曾经用php编写代码没有动态配置的概念,代码修改完后直接刷新页面就可以看到效果,不用重新启动server程序。在学习java和开发消息框架的过程中,有一件事情让我觉得特别麻烦,每次更改模块配置后就要重新启动tomcat,这时我才有动态配置的概念——不用重新启动程序让模块配置能立即生效。动态配置不仅在开发、调试过程中需要,节省时间精力,而且在程序上线运行中也重要,我们能及时的更改运行配...

2018-12-28 22:38:42 196

原创 统一消息对象的灵活配置

最近在写个app玩,其中有个发帖功能,服务器端模块infomationControl的postInfo方法负责写入用户提交的信息。代码: private void postInfo(Object fromWho, TLMsg msg) { String userid = getUserid(); TLMsg infomsg=createMsg()....

2018-12-22 17:43:51 326

原创 移动基站信息APP—基于对象消息编程框架android开发的案例分析

前言       在我之前的文章《基于对象消息编程的android开发框架》中对我的对象消息编程框架及其在android方面的应用做了初步的介绍,其中也用两个案例做以简要说明,限于文章篇幅没有深入阐述,在此对上篇文章的移动基站信息案例进行较深入的分析,从而对消息编程进一步的了解。案例app功能     在通信公司运维中,需要知道移动基站的信号质量,根据信号质量而对基站进行调整或维护。为...

2018-10-11 11:28:08 724

原创 基于对象消息编程的android开发框架

声明:本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布前言 本着学习移动开发的目的看了郭神的《第一行代码》,但看完后我有种茫然的感觉。是的,知道了activity 、service等这些组件的用法,但如何搭建一个应用程序?一个个activity写么,每个activity臃肿而庞大,各种功能参合到一个activity?这无疑是很疯狂的。之前我大概了解php的开发,知道...

2018-09-26 11:14:29 439

原创 统一对象消息编程(15)--中场休息

    看下时间,三天时间把我认为的统一对象消息编程大概写完了,我是一个想做什么不做完就不罢休的人,因此一股脑的写下来。因为写的太快,没有之前的计划和构思,写的比较粗糙,但总体来说基本把我认为的统一对象消息编程理念及框架介绍了。许多类和一些细节都没有介绍,但我想那些不是重要的,有兴趣的同学看看源码就清楚了,基本没有复杂的东西,况且我目前对java及编程也刚学习,也不知道深奥、复杂的技术。   ...

2018-08-08 21:57:32 233

原创 统一对象消息编程(11)—web框架

我们的web框架是在tomcat环境上开发的,也是基于前面所述的消息对象编程框架或模板。整个应用模式与前面介绍的普通环境下的一样,所以理解了前面的案例,那么也很容易理解这个了。cn.tianlong.java包下的servletutils 为web框架,servletdemo为测试代码。配置在WEB-INF/conf 下。 框架流程:下面我们看过滤器的配置和代码。首先...

2018-08-08 17:11:48 179

原创 统一对象消息编程(10)—对象消息编程框架应用4(demo—数据库操作)

现在我们在大致分析db案例。在dbdemo包下是测试数据库的demo。我们看入口类Main代码:public class Main extends TLBaseModule { static long startTime; private static boolean resultflag = false; private static int i = 0; ...

2018-08-08 13:00:17 353

原创 统一对象消息编程(9)—对象消息编程框架应用3(demo—应用server)

通过前面hello小明案例的介绍,我们对对象消息编模式或框架有了初步认识。为了验证这种模式是否的可用,我还对数据库、网络应用等方面进行了测试,在tlobjdemo下有案例代码。编码质量比较低,当时完全是为了测试。dbdemo包是数据库方面的测试,http是网络方面的测试,包括客户端和服务器。 我认为对象消息编程框架一个优点是逻辑清晰,因为对象之间只调用一个方法putmsg,跟随这个...

2018-08-07 22:17:58 170

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除