自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (2)
  • 收藏
  • 关注

原创 FastJSON、Gson和Jackson性能对比

把Java对象JSON序列化,Jackson速度最快,在测试中比Gson快接近50%,FastJSON和Gson速度接近。把JSON反序列化成Java对象,FastJSON、Jackson速度接近,Gson速度稍慢,不过差距很小。

2015-12-10 17:55:02 73224 12

原创 Flume学习07 — FlumeRpcClientUtils工具类

FlumeRpcClientUtils提供通用的Event操作功能,通过配置文件可以在多个RpcClient之间进行切换。FlumeRpcClientUtils配置参数# 可选值default、thrift、default_failover、default_loadbalance# 其中default使用avro协议# 如果使用default_failover和default_loadbalan

2015-10-27 16:52:02 3471 1

原创 Flume学习06 — SDK

Flume SDK是一个提供Flume连接和向Flume发送数据(通过RPC)的类库。Flume SDK封装了底层的细节,只提供了统一接口,包括Flume连接、Event封装和Event发送等。

2015-10-27 16:31:21 2777

原创 HTML5滑动(swipe)事件

移动H5开发中经常用到滑动效果(页面上移、下移、向左滑动、向右滑动等),浏览器并没有内置swipe事件,可以通过touch事件(touchstart、touchmove和touchend)模拟swipe效果。

2015-10-22 15:23:45 53795 1

原创 List遍历中删除元素

List遍历主要有索引下标遍历、for循环遍历和Iterator迭代遍历,索引下标和for循环在遍历中删除元素都存在问题,Iterator迭代可以实现遍历中删除元素。

2015-10-21 14:04:20 1221

原创 Flume学习05

本文介绍Channel Selectors、Sink Processors和Flume Interceptors

2015-10-21 10:25:53 2003

原创 Flume学习04 — Sink

Flume提供了大量的Sink,下面主要介绍HDFS Sink、Avro Sink、Thrift Sink、Kafka Sink、HBase Sink。

2015-10-19 17:51:31 2457 1

原创 Flume学习03 — Channel

Flume提供了大量的Channel,下面主要介绍Memory Channel、File Channel、Kafka Channel和Spillable Memory Channel。

2015-10-19 17:23:24 6418

原创 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"。出现该错误的原因是org.slf4j.impl.StaticLoggerBinder无法加载到内存中,当项目classpath找不到适合的SLF4J Binding时会出现该错误提示。

2015-10-14 17:08:06 1376

原创 Flume学习02 — Source

Flume内置了大量的Sourece,其中Avro Source、Thrift Source、Spooling Directory Source、Kafka Source具有较好的性能和较广泛的使用场景,下面主要介绍这几种Source。

2015-10-14 10:32:37 4283

原创 Flume学习01

概述Apache Flume是一个分布式的、可靠的和可用的系统,它能把不同数据源的海量日志数据有效地收集、汇总和移动,最后存入一个集中式数据存储系统中。Flume是Apache顶级开源项目,目前有0.9.x和1.x两个主要系列,其中0.9.x系列是Flume OG(Original Generation),1.x是Flume NG(Next Generation),Flume NG比Flume OG

2015-10-13 18:00:08 2472 1

原创 排序算法及其复杂度(JavaScript实现)

排序算法经过了很长时间的演变,产生了很多种不同的方法,每种算法都有它特定的使用场合。本文总结了常用的排序算法及其JavaScript实现。

2015-09-05 15:19:25 1562

原创 Oracle 11G登陆提示ORA-28002:the password will expire within 7 days

Oracle 11G普通用户有个180天的缺省密码周期,当快过期的时候会出现提示ORA-28002:the password will expire within 7 days。

2015-09-02 16:34:10 1301

原创 Mybatis执行Update返回行数为负数

获取mybatis的update行数,总是返回负数。后来在官网上找到原因,是由于defaultExecutorType的引起的,defaultExecutorType有三个执行器SIMPLE、REUSE和BATCH。其中BATCH可以批量更新操作缓存SQL以提高性能,但是有个缺陷就是无法获取update、delete返回的行数。defaultExecutorType的默认执行器是SIMPLE。

2015-08-27 12:44:01 19653 2

原创 几款Web富客户端(RIA)框架

ExtJS、EasyUI、LigerUI、DWZ、B-JUI、Bootstrap

2015-08-21 15:27:16 33806 2

原创 ajax跨域

出于安全方面的考虑,Web浏览器中JavaScript无法访问其他服务器上的资源,这个限制仅在Web浏览器中有效。而跨域就是通过某些手段来绕过这个限制,实现不同服务器之间通信的效果。ajax跨域可以通过jsonp、cros或者服务端代理实现。

2015-08-18 17:12:46 2563 1

原创 ajax数据类型分析

ajax在浏览器和服务器端传输数据的本质是文本内容(不支持二进制数据),这些文本内容可以是json、xml、html或者纯文本格式,浏览器端把服务端返回的文本内容转为JavaScript的json对象、xml对象或者html对象。

2015-08-17 22:53:43 5532 1

原创 ajax日期参数格式问题

ajax不支持二进制数据传输,所以ajax在传输参数的时候,会调用toString方法把参数转成字符串。日期一般由年、月、日、小时、分、秒、毫秒组成,可以把日期转为2015-08-17 10:12:14的格式,也可以转为从1970年1月1日0时到现在的毫秒数格式,如1439782850609,只要在服务端做相应的日期格式转换即可。

2015-08-17 14:58:06 19858

原创 JavaScript常用字符串处理方法

StringUtils提供一些常用的字符串处理方法,包括除去字符串两端空白、字符串左右两边填补字符、字符串格式化、字符串html编码和字符串html解码。

2015-08-12 16:46:49 2513

原创 JavaScript日期格式化及解析

JavaScript开发经常需要对日期进行转换,把日期转成字符串或者从字符串生成日期。JavaScript日期对象内置了简单的日期格式化方法toString()和日期解析方法Date.parse(),这两个方法有较大的局限性,不能自定义自定义日期格式化和解析的字符串格式。下面列出一些常用的日期处理JS库。

2015-08-12 16:02:16 8625

原创 jQuery轻量级组件Rhui

Rhui是一个轻量级的jQuery组件集合,提供Button、Loading、Toolbar、Panel、Window和Dialog等一些常用的Web开发组件,支持IE7/8/9/10/11、Firefox和Chrome。

2015-08-09 10:10:03 2639

原创 JavaScript继承的实现

JavaScript继承有构造函数继承、原型继承、复制继承、构造函数/原型组合继承等方法,这些继承方法各有特点。目前最常用的就是构造函数/原型组合继承。

2015-08-09 00:54:27 949

原创 Spring使用SLF4J代替Commons Logging写日志

项目的日志更换成slf4j和logback后,发现项目无法启动。错误提示java.lang.ClassNotFoundException: org.apache.commons.logging.Log,如图所示。原因是Spring默认使用commons logging写日志,需要桥接工具把日志输入重定向到slf4j。在项目中添加commons logging到slf4j的桥接器jcl-over-sl

2015-08-06 11:50:03 12662 1

原创 CXF实战之WS-Security(八)

Web-Security概述WS-Security(Web服务安全)是一种提供在Web Service上应用安全的方法的网络传输协议,协议包含了关于如何在Web Service消息上保证完整性和机密性的规约。WS-Security描述了如何将签名和加密头加入SOAP消息。除此以外,还描述了如何在消息中加入安全令牌,包括二进制安全令牌,如X.509认证证书和Kerberos门票(ticket)。WS-

2015-08-03 14:47:38 6468 1

原创 CXF实战之RESTFul服务(七)

JAX-RS是Java提供用于开发RESTful Web服务基于注解(annotation)的API。JAX-RS旨在定义一个统一的规范,使得Java程序员可以使用一套固定的接口来开发REST应用,避免了依赖第三方框架。JAX-RS只定义RESTful API,具体实现由第三方提供,如Jersey、Apache CXF等。

2015-08-01 09:18:25 4093

原创 CXF实战之传输文件(六)

CXF的文件传输通过MTOM实现。MTOM(SOAP Message Transmission Optimization Mechanism)SOAP消息传输优化机制,可以在SOAP消息中发送二进制数据。MTOM允许将消息中包含的大型数据元素外部化,并将其作为无任何特殊编码的二进制数据随消息一起传送。相对于把二进制转为base64进行传输,MTOM具有更高的传输效率。

2015-07-31 09:32:37 9905 2

原创 CXF实战之自定义拦截器(五)

CXF已经内置了一些拦截器,这些拦截器大部分默认添加到拦截器链中,有些拦截器也可以手动添加,如手动添加CXF提供的日志拦截器。也可以自定义拦截器,CXF中实现自定义拦截器很简单,只要继承AbstractPhaseInterceptor或者AbstractPhaseInterceptor的子类(如AbstractSoapInterceptor)即可。

2015-07-30 11:47:16 8780

原创 CXF实战之拦截器Interceptor(四)

拦截器(Interceptor)是CXF功能最主要的扩展点,可以在不对核心模块进行修改的情况下,动态添加很多功能。拦截器和JAX-WS Handler、Filter的功能类似,当服务被调用时,就会创建一个拦截器链(Interceptor Chain),拦截器链在服务输入(IN)或输出(OUT)阶段实现附加功能。 拦截器可以在客户端,也可以在服务端添加。当客户端发起一个WebService请求时,在

2015-07-28 11:00:15 6798 1

原创 CXF实战之集成Spring(三)

CXF原生支持Spring,可以和Spring无缝集成。通过Spring Web实现CXFServlet。下面将Spring和CXF集成在一起,CXF发布的WebService可以调用Spring的Bean。 创建Maven Web项目,在pom.xml中添加CXF和Spring的引用,由于该Web项目中不涉及数据库,没有添加Spring JDBC、Spring ORM等数据库相关模块。

2015-07-27 17:49:48 3145 1

原创 CXF实战之在Tomcat中发布Web Service(二)

服务接口及实现类请参考WebService框架CXF实战(一)创建Maven Web项目,在pom.xml中添加CXF和Spring Web的引用,由于CXFServlet需要Spring Web的支持。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

2015-07-27 15:02:40 7960 1

原创 CXF实战(一)

Apache CXF提供了用于方便地构建和开发WebService的可靠基础架构。它允许创建高性能和可扩展的服务,可以部署在Tomcat和基于Spring的轻量级容器中,也可以部署在更高级的服务器上,例如Jboss、WebSphere或WebLogic。 CXF提供了以下功能: - WebService服务标准支持: - Java API for XML Web Services (JAX-

2015-07-27 11:23:08 29431 2

原创 jQuery操作Form表单元素

Web开发中经常需要操作表单,form表单元素有select、checkbox、radio、textarea、button、file、text、hidden、password等。其中checkbox和radio的读写值操作比较多变,checkbox和radio经常用在一个分组里,实现多选或者单选。jQuery提供了利用表单选择器我们可以极其方便地获取表单的某个或某类型的元素。

2015-07-27 09:13:04 7826 1

原创 JAX-WS使用Handler实现简单的WebService权限验证

WebService如果涉及到安全保密或者使用权限的时候,WS-Security通常是最优选择。WS-Security (Web服务安全) 包含了关于如何在WebService消息上保证完整性和机密性的规约,如何将签名和加密头加入SOAP消息。不过WS-Security也有一些性能上的损耗,在信息保密要求不是很高的情况下,可以通过在SOAPHeader中添加简单的校验信息实现。具体思路是客户端

2015-07-22 11:25:13 9455 1

原创 JAX-WS HandlerChain使用详解

JAX-WS的Handler和Servlet的Filter相似,可以对所有WebServicer进行拦截,在Handler中可以记录日志、权限控制、对请求的SOAP消息进行加密,解密等。JAX-WS提供两个Handler接口,LogicalHandler和SOAPHandler。LogicalHandler处理的是Message Payload,只能够访问消息单元中的SOAP消息体。SOAPHan

2015-07-21 15:40:38 7158 4

原创 解决Maven更新后错误Dynamic Web Module 3.0 requires Java 1.6 or newer

今天在用Maven->Update Project更新项目后,出现Dynamic Web Module 3.0 requires Java 1.6 or newer错误提示,发现项目Java Compiler中的版本回到1.5,如图所示。在Maven官方文档找到了原因。Maven 3.0 source和target的默认设置都是1.5,与运行Maven时的JDK版本无关,除非在项目的POM文件中显

2015-07-21 09:03:43 19745 4

原创 用JAX-WS在Tomcat中发布WebService

JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架。Axis2和CXF是目前最流行的Webservice框架,这两个框架各有优点,不过都属于重量级框架。JAX-WS RI是JAX WebService参考实现。相对于Axis2和CXF,JAX-WS RI是一个轻量级的框架。虽然是个轻量级框架,JAX-W

2015-07-14 22:49:36 18772 2

原创 Web中树形数据(层级关系数据)的实现—以行政区树为例(二)

前面已经实现了在Java中生成行政区树(参考博客),其实也可以在JavaScript中生成树,由于JavaScript是弱类型,从某种程度上来说,JavaScript比Java更容易构建树。在JavaScript中只要生成zTree或者Ext Tree支持的数据格式即可。/** * 构建树,如果传入的参数有多个跟节点,则返回数组,如果只有一个根节点,则返回根节点。 * * @param

2015-07-12 18:13:27 6785

原创 Web中树形数据(层级关系数据)的实现—以行政区树为例

在Web开发中经常遇到树形数据的操作,如菜单、组织机构、行政区(省、市、县)等具有层级关系的数据。下面以行政区为例说明树形数据(层级关系数据)的存储以及实现,效果如图所示。1 数据库表结构设计树形数据一般通过父节点和子节点实现数据之间的层级关联,层级关系在数据库中主要通过主键和外键来实现。--使用Oracle数据库--创建行政区表create table

2015-07-12 14:23:42 20214 12

原创 Oracle外键级联删除和级联更新

1 级联删除Oracle在外键的删除上有NO ACTION(类似RESTRICT)、CASCADE和SET NULL三种行为。下面以学生-班级为例说明不同情况下的外键删除,学生属于班级,班级的主键是学生的外键。-- 班级表CRATE TABLE TB_CLASS( ID NUMBER NOT NULL, --班级主键 NAME VARCHAR2(50),

2015-07-11 19:14:04 8808

原创 git使用sshkey免密码登陆

最近在oschina上托管项目,oschina上的项目都是用git来管理。git有个很麻烦的地方就是每次提交代码,都要求输入oschina的用户名和密码进行验证,极大的影响效率。oschina提供了SSH Key访问的方法,该方法只要在oschina上添加公钥,在本地使用密钥就可以免密码连接,参考教程。首先用ssh-keygen生成sshkeyssh-keygen -t

2015-07-09 22:07:06 30594 2

CXF集成Spring

CXF集成Spring发布WebService代码实例

2015-07-27

JAX-WS在Tomcat中发布服务

JAX-WS在Tomcat中发布服务实例,同时在Handler中实现简单的授权校验。

2015-07-22

空空如也

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

TA关注的人

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