- 博客(136)
- 资源 (22)
- 收藏
- 关注
原创 架构设计5步曲
狭义上的架构设计过程就是“分+合”的过程,一个系统=架构元素+架构+整合机制。那么怎么切,依据什么切?切了以后怎么往一起整合?我们这里做个简单的介绍。 架构设计大的步骤:理清楚要建设的系统的环境上下文要求和需求、梳理出关键核心问题、根据核心问题定义边界、根据边界切分架构元素(子系统、模块、服务、类)、定义架构元素之间的交互机制。一共5个步骤,按照这5个步骤进行...
2019-11-16 20:02:09 1287
原创 Jenkins中配置Sonar扫描代码遇到的问题和解决办法
Cannot use the diamond generic notation when running in JDKinferior to 1.7 mode! 根据使用的JDK版本,修改配置: sonar.java.source=1.8java.lang.IllegalStateException: No files nor directories matching ‘target/’sonar.java.binaries=.Project does not pass the qual..
2021-11-09 15:45:17 3491
原创 Maven记录
1、mirror的作用和使用场景是什么?如果你想切换Maven库到某个新的库地址,但是又不想修改项目POM中的地址,比如说你的项目很多,或者是之前库配置的地方很多; 想替换中央仓库,用阿里巴巴的,不用国外的; 想多配置几个中央仓库,比如从阿里巴巴的找不到了,可以到开源中国的上边找; .....2、server的id子标签有什么用?server的id必须要和库的id相一致,比如说deploy时指定要deploy的库是哪个,比如说pom里配置的distributionManagement
2021-03-01 22:34:27 434
原创 Return code is: 400, ReasonPhrase: Bad Request
在使用deploy安装快照版的jar包到私服Nexus上的库上,报以上错误。原因:快照版本的jar包后缀必须是:SNAPSHOT,注意,这里必须是“大写”的,如果换成小写,都是不行的。报这个错误。 网上还有其他原因,比如snapshot库的Deployment Policy策略是Read only,或者是库地址不对等等,这里不一一赘述,希望能帮大家解决问题。附带两个deploy组件jar包的语句, 安装快照命令:mvn deploy:deploy-file ...
2021-03-01 18:42:56 2990
原创 面向对象语言三大特征和“边界"
人类解决复杂问题的重要办法之一就是“分解”,那么依据什么去分解?这里必须提到一个概念:边界。我们回归软件架构设计,清晰的边界是一个系统是否足够优秀的首要标准,我们常说“高内聚,低耦合”实际上也是在强调一个边界问题。如果没有边界,我们怎么能知道哪些功能、类、函数应该划归到一起?如果没有边界,怎么来谈两个模块、类之间的耦合度关系是高还是低呢? 倘若系统、模块、类的边界不够...
2019-11-18 14:50:02 535
原创 架构设计的目的和意义
架构设计,简单说就是“切分”和“组合”的艺术,主要目的是解决软件系统建设过程中的主要矛盾。这个和我们人类社会划分组织机构的目的是一样的。我们可以比较粗浅地认为架构就是:模块(子系统)+交互机制,以及一些约束规则和指导原则,那么为甚要做架构设计呢?我们只有理解这个目的才能做的更好,我个人认为可以归类为以下几个理由: 第一:做事情正确的方法,应该是从粗到细、层...
2019-11-13 10:26:33 6168
原创 SpringBoot整合Activiti启动后不创建表
环境描述: SpringBoot版本:2.1.3,Activiti版本:5.22,MySQL版本:5.5.28解决办法: 在数据库访问的地址上添加配置:nullCatalogMeansCurrent=true先解决问题,随后再查具体原因。...
2019-03-22 09:54:06 7432 10
原创 关于windows上kafka安装配置的一些记录
1、安装环境:windows7、kafka版本是2.11-1.1.0; 2、修改地方: 第一步:在server.proerties中修改地方: log.dirs=D:/tools/kafka_2.11-1.1.0/kafka-logs,这里要注意,如果写成log.dir=D:\tools\kafka_2.11-1.1.0\kafka-logs则启动的时候会报错,识别不了斜杠,而应该用反斜杠。...
2018-08-24 16:07:12 367
原创 hibernate查询语句却报Could not execute JDBC batch update错误的原因追踪
业务系统在使用hibernate的list方法做查询时报了以下的一个错误: org.hibernate.exception.DataException: Could not execute JDBC batch update,非常奇怪,我们当前的方法中并没有做更新操做和保存操作啊,怎么报了这样一个错误?于是顺着问题追了下去,主要是org.hibernate.impl.SessionImpl中的关...
2018-03-15 16:12:09 8052 1
原创 nginx监控模块http_stub_status_module安装
在性能优化过程中,首先要定位到瓶颈,瓶颈的分析往往是从前到后,比如从浏览器到最后的数据库,逐渐深入。性能优化不能任意而为,一定要首先确定了瓶颈,然后再着手优化。这里主要讲解如何通过http_stub_status_module来定位nginx的瓶颈。注意,nginx在linux上的性能要比同等硬件配置的性能要好,所以这里只linux上的nginx性能优化。正式安装之前,先执行nginx -V命令
2018-02-05 19:02:57 5730 1
原创 iptraf 显示找不到命令
在centos7上安装完iptraf后,执行iptraf后报“显示找不到命令”,试了好几次,后来查了一些资料才知道,应该执行iptraf-ng命令。而之前我确实在其他机子安装上,而且用iptraf是可以运行起来的,可能是版本不一样吧,也没有去深究。这里记下来,防止大家浪费时间。
2018-02-02 11:50:25 1709 1
原创 Spark的Application和依赖的公共jar包单独存放
在Spark做大数据分析的时候,我们需要将依赖的第三方jar包或者我们自己写的公共包单独放在不同的地方,这样可以保持有一份公共的jar包库,当有新的开发任务或者要部署到其其他服务器的时候,只要把这些jar包拷贝过去就行。比如我在我的服务器上建立两个目录,一个是commonlib,一个是driverlib,我们可以将依赖的第三方jar包,比如mysql的驱动jar包放在commonlib文件夹下,可
2017-09-12 16:47:19 1077
原创 “Service 'Driver' could not bind on port”错误的解决方法
在deploy model为“cluster”时,出现这个错误,按照网上的各种方式都是了,比如以下方式:1、修改export SPARK_LOCAL_IP=127.0.0.1;2、保证SPARK_LOCAL_IP为本机真实IP;3、关闭防火墙和SELINUX4、关闭IPV6等等都不行,最后同事在spark-evn.sh中,通过以下设置方式问题解决了。export SPARK_LOCAL_
2017-09-11 21:37:03 5787
原创 基于java的sparkSQL从mysql中读取数据
发现网上基于java的写法很少,这里就做个记录,两种从mysql中读取数据的方法。第一种: String sql = " (select u.user_name_zh, r.organ_name from user_group_organ r, user as u " + "where r.user_id=u.user_id limit 1,
2017-09-02 21:46:04 7839 4
原创 Spark task not serializable错误的分析和处理
在编写代码Spark应用时出现以上的问题,最后发现是因为Dataset<Row>的foreach方法中传入的参数ForeachFunction<Row>引起的,代码如下: projectDataSourceDFFromMySQL.foreach(new ForeachFunction<Row>() { private static final long serialV
2017-09-01 22:05:36 16082
原创 关于Hadoop的两个YARN参数
在Hadoop启动的过程中发现,两个slave只有一个NodeManager启动了,另一个没有启动,但是他们的配置都是一样的,而且硬件配置也是一样的,再者也用free等去查看了内存等的运行情况,但是还是起不来。报的错误日志是:NodeManager from slave2 doesn't satisfy minimum allocations, Sending SHUTDOW,slave2就是那个起
2017-08-24 22:40:58 528
原创 centos6.5上离线安装gcc
最近要在一个环境上安装redis,结果需要用到gcc,而且操作系统上没有安装gcc,这就需要手工安装了,在Linux上这个可不是个好活,不过这里搞定了,给大家写下来。 下载需要的包,地址如下:[gcc包下载地址](http://download.csdn.net/download/achilles12345/9948824%20%E2%80%9Cgcc%E4%B8%8B%E8%BD%BD%E
2017-08-24 18:37:54 2331
原创 hive执行select count(*)报错java.net.NoRouteToHostException: No route to host问题的解决
这个主要原因要关注下防火墙和excluded列表,防火墙一定要注意不同的操作系统防火墙是不同的。比如Centos7.0里的防火墙和7以下的版本是不同的。 Centos7.0的防火墙是firewall,操作如下:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewal
2017-08-21 10:46:32 1294
原创 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
环境:Hadoop2.8.0、Hive1.2.2,一共三台服务器,master是8G内存,两个slaver是4G内存(很寒酸),在Hive的命令行中执行count(*)和insert的时候总是报错,比如执行select count(*)的时候报“return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask”错误。很显然这个不是...
2017-08-21 00:31:02 32162 2
原创 安装MySQL5.7.18遇到的坑
最近才注意到MySQL的各个版本之间差别还挺大的,比如5.5.x版本的timestamp类型列只能有一个设置为default CURRENT_TIMESTAMP的,于是尝试了换成一个新版本是mysql,但是不想动本地原来的数据库,于是想在我的win7系统上安装两个MySQL数据,于是踩了以下好几个坑。我安装的版本是mysql-5.7.18-winx64解压版,另外网上安装的教程很多,我就不在这里
2017-06-22 17:27:25 2766 2
原创 activiti在启动的时候报空指针
工作流activiti,版本号是:5.18.0.1,在启动的时候报错: Caused by: java.lang.NullPointerException at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:1082) 调试了下源码,在启动的时候activiti要校验数据库的元数据,获
2017-06-15 09:45:11 7204 1
原创 java web应用文件无法上传的一个原因
前天还好好的程序,昨天就无法进行图片上传,开始以为是nginx的原因,因为之前nginx加载网页总是加载不全,所以修改了下nginx的配置。可是经过排查以后没有nginx有啥问题。最后怀疑是硬盘是不是满了,使用df -h命令,结果得到以下结果: 本来以为是放图片文件的硬盘满了,结果却偶尔发现是:/dev/xvda1达到了100%。 解决办法:清理各种tomcat日志、ngin
2016-10-27 09:44:14 1211
原创 DOSGI-CXF和zookeeper的整合
上一篇文章中描述了在osgi的环境中如何发布webserivce,如何在spring-dm中注入webservice服务对象,或者普通的调用方式,这里我们主要讲下如何将webserivce服务发布到zookeeper上。 相比之前的方案,无论是使用springdm还是使用普通的webserivce对象发现方式都有个缺点,需要关心webserivce发布地址等参数,这个有时候会让人很烦,如果我们将普
2016-08-25 15:53:43 1062
原创 关于DOSGI-CXF整合到SpringDM上的解决办法
在osgi的环境下,我们需要RMI的方式调用远端的服务的话,一般有以下的方案。 步骤如下: 服务端发布webserivce,这个我直接摘录网上的资料,代码如:**接口:**public interface DisplayService { boolean displayText(String text); String getID();}**实现类:**publi
2016-08-25 15:12:38 673
原创 用Maven自动生成带有sh和bat启动脚本的java应用
java做web开发,导致很多人不知道使用Java如何开发普通的项目,这里我们做个简单的介绍。java项目一般都是使用脚本启动,比如windows上的bat文件和linux上的sh文件,而要写这些文件常常需要花费不少精力,很多人肯能会改这种文件,但是要凭空写一个就比较费劲。现在有maven插件帮我们解决这个问题,效果也是不要不要的,具体步骤如下:第一步:使用maven自带骨架maven-arch
2016-08-08 13:00:42 14301 2
原创 HttpClient的工具类
经常需要使用HttpClient进行交互,有的时候需要保存和携带cookie,以及保持客户端和服务端的Session,比如在Android客户端访问服务端的时候可能需要满足以上的要求,则可以使用以下的方式。package com.mobile.android.yiloneshop.utils;import java.io.IOException; import java.io.Unsupporte
2016-07-10 00:07:19 601
原创 CXF-DOSGI为webservice增加用户名密码权限校验
在OSGI环境中,通常使用CXF-DOSGI作为webservice发布框架,这种资料网上很多,但是如何在CXF-DOSGI下做webservice的权限校验,网上资料几乎为零。 关于CXF(注意不是CXF-DOSGI)做权限校验的资料一堆堆的。本人经过试验,解决了这个问题
2016-06-23 10:20:22 4442
原创 java路径改不过来的原因和解决办法
要换个Java版本,安装成功后,设置JAVA_HOME、CLASSPATH、path,但是发现使用maven打包仍然用的之前的版本,真是有了鬼了。 后来发现在C:\Windows\System32下有java.exe等执行程序,如图: 差点气的背过气了,果断删掉!问题解决! 这个问题消耗了不少时间,这是因为在环境变量Path中Win
2016-04-25 14:58:01 2234
原创 activiti中多实例任务中动态添加用户ID、删除用户、委派
首先得说下这个其实名不副实,因为多实例任务不太容易实现动态增加用户ID,到底要创建几个task,在启动流程的时候已经完成了。后来在朋友的提示下换了个方式。 第一、流程图: 第二、排他网管向User Task的连接需要增加一个表达式,比如:${endFlat=="false"},排他网关朝着结束节点的连接线需要增加${endFlag=="true"}。第三、增加一个创建U
2016-04-07 21:25:31 7795
原创 Jenkins上svn: E175002: Processing REPORT request response failed问题的排查过程
公司的SVN服务器坏了,修好后我们的Jenkins打包的时候一直报:Jenkins org.tmatesoft.svn.core.SVNException: svn: E175002: Processing REPORT request response failed的错误,于是做了以下排查: 1、通过其他机器的eclipse连接SVN服务器,显示正常,基本排除了SVN服务器的问题;
2016-04-06 13:25:41 11531 1
原创 ehcache报:java.net.UnknownHostException: xxx: xxx: 未知的名称或服务错误的原因和解决
系统使用到ehcache,部署到linux上,结果系统在启动的时候报:java.net.UnknownHostException: XYPTAPP1: XYPTAPP1: 未知的名称或服务的错误。网上搜到一个文章说的解决办法:http://bjyzxxds.iteye.com/blog/2155347,但是这是啥原因呢?记得ehcache中并没有配置和网络有关的东西啊,不管了打开源码看,按照报错的
2016-03-18 16:13:22 6789 1
原创 Error in init(): Log already in use报错的解决方法
今天下在同事的windows7下下部署个程序,可是一直报一错误“Error in init(): Log already in use?”,很明显这是分布式事务atomikos的错误,查了网上的一个解决办法的文章点击打开链接,文章的意思很清楚,就是两个程序争用一个锁文件造成的。可是我们的tomat下并没有部署两个相同的程序啊,最后想既然说无法生成锁文件,最后我们就使用搜索操作系统文件目录的方式来找
2016-03-16 16:52:24 9570
原创 JVM崩溃日志分析2,没有生成hs_err_<pid>.log日志原因分析
tomcat崩溃了,但是也没有生成hs_err_.log日志,但是生成了core日志,tomat的日志下边只报了一下边的错误: # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0xff1d7e48, p
2016-03-14 17:18:09 10537 2
原创 JVM崩溃日志分析1
最先线上的一个tomcat总是无缘无故崩溃,tomcat日志里又没有报任何错误,于是调出JVM的崩溃日志查看,一般崩溃日志在启动目录下,比如tomcat的bin目录下,但是如果你用自己写的脚本启动的tomcat,则这个日志可能就在你放脚本的目录下。## A fatal error has been detected by the Java Runtime Environment:#
2016-03-14 16:37:18 22958 3
原创 solaris10上tomcat无法使用64位JVM
同事在solaris10上装了,但是tomcat跑起来后,却发现tomcat使用的JVM是32位的,“震惊”之余最后发现是以下原因: solaris上JDK比较特殊,64位是在32的基础上封装的,所以装JDK的时候需要装32位,也要装64位。同时在运行java命令时默认是32位,如果需要用64位则需要加上“-d64”这个参数,所以只需要在tomcat的catalina.sh上的启
2016-03-09 13:20:19 787 1
原创 Solaris10 sparc架构下安装gdb和简单调试
最近tomcat一直无缘无故崩溃,但是tomcat的日志又没有显示什么异常,估计是因为tomcat还没有来得及写日志就直接崩溃了。而且tomcat的bin也没有crash日志,也就是默认名字格式如:hs_err_pid***.log名字类型的日志,这个时候还有一条路就是分析core日志。默认的core日志是在启动目录的,比如在tomcat的bin目录。当然了,如果你用自己写的脚本来启动tomcat
2016-03-04 10:31:32 2463
原创 virgo tomcat下载
virgo在国内用的比较少,virgo配套的tomcat放的下载位置也不是很明显,而且中间有点小波折,为了不浪费各位网友的时间,这里简单说下: 第一步:点击链接: 点击打开链接 第二步:点击Virgo Server for Apache Tomcat后边的“Download”,如图: 第三步:在弹出的页面中点击超链接:Taiwan-Compute Cen
2016-02-03 18:15:39 851
原创 activiti的一些记录
1、根据task的id获取task: TaskService taskService = getTaskService(); Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
2015-12-29 23:46:06 1170
原创 activiti流程设计器activiti designer在eclipse中的安装。
网上很多地方建议使用eclipse的“help->Install New software”的在线安装方式,我试了下不但慢,而且几乎不能成功。所以建议直接下载该eclipse插件到本地后安装,由于这个插件还需要依赖其他的eclipse插件,所以这些插件也需要安装,我这里都整理好了,大家可以直接下载安装。否则会报类似于:“Cannot complete the install because o
2015-12-29 23:34:47 4112 1
java web 服务 (构建与运行)
2014-10-12
jax-ws的handler做调用权限校验例子
2014-10-01
Java Webservice比较全的资料
2012-02-29
JVM、Tomcat、OSGI等类加载器整理文档
2012-02-27
在oralce developer 6i中编辑动态List
2008-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人