最近要在mac osx 10.9上集成apache 和 Tomcat,采用mod_jk的方式进行集成,但是在过程中遇到了一些在10.8上面没有遇到的蛋疼的问题,本篇文章就做一下总结。

第一步 下载mod_jk源代码

首先去官方网站下载mod_jk的代码,在笔者写本篇总结的时候,最新版本的是1.2.39,请根据对应的apache版本选择相应版本的mod_jk下载。

第二步 安装mod_jk

笔者将源代码放在~/Download目录下面。接下来我们就来看看如何安装mod_jk.

1
2
3
cd ~/Downloads/tomcat-connectors-1.2.39-src/native

./configure CFLAGS='-arch x86_64' APXSLDFLAGS='-arch x86_64' --with-apxs=/usr/sbin/apxs

执行上面的命令结果出现了一个错误:

1
configure: error: could not detect a 32-bit integer type
Read on(阅读全文) →

本文翻译自Java 8 Tutorial

“Java还没死-大家正在纷纷议论”

首先欢迎大家来看我对Java8的介绍。本文将引导你一步步的了解所有新的语言特性。利用简短的代码片段,你将学习如何去使用缺省接口方法(default interface methods),lambda 表达式,方法引用(method references)可重复注解(repeatable annotations).当你看到本文结束的时候,你将非常熟悉像Streams,函数式接口,map 扩展新的Date APIAPI的变化。

这里没有整篇的文字-仅仅是一系列注释的代码片段。让我们开启本文的愉快之旅吧。

接口缺省方法(Default Methods for Interfaces)

Java8容许通过default关键字给接口增加非抽象的方法实现,这个特性也可以叫做扩展方法(Extension Methods).这里是我们第一个例子:

1
2
3
4
5
6
7
interface Formula {
    double calculate(int a);

    default double sqrt(int a) {
        return Math.sqrt(a);
    }
}
Read on(阅读全文) →

2013年已经过去了,做个简短的总结吧。

公司方面

公司2012年走了很多弯路,交了挺多学费,经过2012年的学习和经验,2013年公司业务有了飞速的发展,2013年业务增长了200多倍。公司从刚开始的代运营,到后来的渠道品牌,再到年底确定的云供应链模式的一次次转变和升级,每一次调整都有对过去经验的总结以及对未来趋势的掌握,总体上来说是按照正确的方向在奔跑。

创业的时候,多想想当时打工时候的心态,打工的时候,每次过年春节,咋们都希望早点放假,多点假期,所以在自己创业的时候,也多这样想一想,今年咋们公司1月22号放假,初七上班,放假15天,很多伙伴都很开心。关键的是,我们想想,临过年一个月的时候,很多人其实都是工作效率低下,其实也不会给公司带来什么效益,所以其实春节多放点假对公司和伙伴都是双赢的。换位思考,多站在对方的角度考虑问题,这种话大多数人都会说,但是真正能做到的人多吗?换位思考,从自己做起。

Read on(阅读全文) →


创业快两年,感触颇多,也走过一些弯路,不过总体上还好。随着公司业务的不断扩大,现在需要招聘高级Java软件攻城狮数名,下面简单介绍下:

公司名称: 深圳易居尚网络科技有限公司
工作地点: 珠海清华科技园
职位名称: 高级Java软件攻城狮
月薪: 10k-20k

公司介绍:
我们公司易居尚秉承着让品质走进生活的理念,致力于打造一个品质、高效、便捷的居家用品网络销售平台.咋们公司不打卡,弹性工作制,每天下午有公司大厨做的下午茶,攻城狮童鞋每周可以自由支配20%的工作时间做自己想做的事情,我们技术团队内部有很强互助和知识分享意识(包括技术骚们喜欢的爱情动作片,嘘…,其他人我不告诉他)当然了还有很多美女和帅哥,想置身互联网和电子商务有理想的的技术骚们,请你加入我们 一起high,我们不求改变世界,但求超越自我。也请各位朋友帮忙推荐,推荐成功有神秘礼物相送哦,有意者请联系:tiger.zhou@kariqu.com 或者留言给我,另外也可以通过@krq_tiger新浪微博与我取的联系.

Read on(阅读全文) →

本文是Tomcat源代码阅读系列的第八篇文章,本系列前七篇文章如下:
在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码(Tomcat源代码阅读系列之一)
Tomcat总体结构 (Tomcat源代码阅读系列之二)
Tomcat启动过程(Tomcat源代码阅读系列之三)
Tomcat关闭过程(Tomcat源代码阅读系列之四)
Tomcat请求处理流程(Tomcat源代码阅读系列之五)
Tomcat类加载器机制(Tomcat源代码阅读系列之六)
Tomcat Session管理机制(Tomcat源代码阅读系列之七)

本篇我们将来分析一下Tomcat中所涉及到设计模式,本文我们将主要来分析外观模式观察者模式责任链模式模板方法模式,命令模式
在开始本文之前,笔者先说明一下对于设计模式的一点看法。笔者曾经经常看到网上有人讨论设计模式,也偶尔会遇到有人非要严格按照GOF设计模式的类图以及其中的角色去套用别人的设计,只要类图不一样,或者角色多了或者少了就会觉得怎么和官方定义的模式不一样,其实这都是对设计模式的误解。设计模式其实不仅仅存在软件行业,各行各业其实都有模式,它是所在行业对一些通用问题解决方案的总结和抽象,是一种对常见问题的抽象的解决方案,不是一种具体的实现,所以我们在讨论设计模式的时候,千万别一个劲的套用GOF设计模式中的类图以及其中所涉及到的角色,而是要理解设计模式的思维,理解设计模式的使用场景,只有理解了设计模式中所蕴含的思维以及具体的使用场景以后,你才算是真正的掌握了它。ok,小扯了一下淡,接下来我们进入主题吧。

Read on(阅读全文) →

本文是Tomcat源代码阅读系列的第七篇文章,本系列前六篇文章如下:
在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码(Tomcat源代码阅读系列之一)
Tomcat总体结构 (Tomcat源代码阅读系列之二)
Tomcat启动过程(Tomcat源代码阅读系列之三)
Tomcat关闭过程(Tomcat源代码阅读系列之四)
Tomcat请求处理流程(Tomcat源代码阅读系列之五)
Tomcat类加载器机制(Tomcat源代码阅读系列之六)

前面几篇我们分析了Tomcat的启动,关闭,请求处理的流程,tomcat的classloader机制,本篇将接着分析Tomcat的session管理方面的内容。

Read on(阅读全文) →

本文是Tomcat源代码阅读系列的第六篇文章,本系列前五篇文章如下:
在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码(Tomcat源代码阅读系列之一)
Tomcat总体结构 (Tomcat源代码阅读系列之二)
Tomcat启动过程(Tomcat源代码阅读系列之三)
Tomcat关闭过程(Tomcat源代码阅读系列之四)
Tomcat请求处理流程(Tomcat源代码阅读系列之五)

前面几篇我们分析了Tomcat的启动,关闭以及请求处理的流程,本篇将接着分析Tomcat的类加载器机制,如果大家对Java的类加载器机制不熟悉的话,建议首先熟悉一下Java的类加载器机制后再来查看本篇文章,对于Java的类加载器机制,大家可以参考自行Google或者参考笔者的另外一篇文章:Java Classloader机制解析.

Read on(阅读全文) →

本文是Tomcat源代码阅读系列的第五篇文章,本系列前四篇文章如下:
在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码(Tomcat源代码阅读系列之一)
Tomcat总体结构 (Tomcat源代码阅读系列之二)
Tomcat启动过程(Tomcat源代码阅读系列之三)
Tomcat关闭过程(Tomcat源代码阅读系列之四)

前面已经分析完了Tomcat的启动和关闭过程,本篇就来接着分析一下Tomcat中请求的处理过程。

Read on(阅读全文) →

本文是Tomcat源代码阅读系列的第四篇文章,在阅读此文之前,建议先读前三篇:
在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码(Tomcat源代码阅读系列之一)
Tomcat总体结构 (Tomcat源代码阅读系列之二)
Tomcat启动过程(Tomcat源代码阅读系列之三)

我们在Tomcat启动过程(Tomcat源代码阅读系列之三)一文中已经知道Tomcat启动以后,会启动6条线程,他们分别如下:

Read on(阅读全文) →

本文是Tomcat源代码阅读系列的第三篇文章,在阅读此文之前,建议先读前面的两篇:
在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码(Tomcat源代码阅读系列之一)
Tomcat总体结构 (Tomcat源代码阅读系列之二)

本篇我们来一起分析一下Tomcat的启动过程,启动过程涉及到了Tomcat组件的生命周期管理,本文将从Tomcat组件生命周期管理,Tomcat启动的总过程Tomcat启动过程关键步骤分析三个方面来进行描述。

Read on(阅读全文) →