- 比较Kamailio和OpenSIPS的重写contact函数
无名387
OpenSIPSKamailioNAT
Kamailio:调用set_contact_alias()之后,在原有的contact的后面增加参数,具体地说,就是网络地址,网络端口和transport,好处是收到后续请求之时可以恢复原有contact的内容(当然也有坏处,就是增加参数之后导致包大,可能超过MTU)OpenSIPS:调用fix_nated_contact()之后,用网络地址和网络端口直接覆盖了在原有的contact,那么当收到
- 测试OpenSIPS3.4.3的lua模块
无名387
OpenSIPSOpenSIPSlua
这几天测试OpenSIPS3.4.3的lua模块,记录如下:有bug,但能用但现实世界就是这样,总是不完美的,发现之后马上提了issue下面这段代码运行报错:functionfunc1(msg)xlog("ERR","Hello,OpenSIPS\n")--把ERR改成EEE就没问题endsipstate.c的127行明显有问题(读者自己去查阅源码,这里不贴了)功能比Kamailio的KEMI少,
- ubuntu上kamailio+rtpproxy+mediaproxy环境搭建
Bluekkk
前言最近项目中需要用SIP协议栈实现实时音视频通信。因为服务器段暂时没人做,所以就用kamailio搭建了一个SIP服务器做开发测试使用。安装配置过程中踩了不少坑,现在讲整个过程总结一下。kamailio安装配置官方安装文档地址:https://www.kamailio.org/wiki/install/4.4.x/git下载源码mkdir-p/usr/local/src/kamailiocd/u
- 比较Kamailio和OpenSIPS的dispatcher模块
无名387
KamailioOpenSIPSdispatcher
Kamailio的dispatcher模块我用的很多,很熟OpenSIPS有同名模块二者基本功能相同但真使起来,差别还是挺大的#OpenSIPSevent_route[E_DISPATCHER_STATUS]{#logeachtimeadispatcherdestination#changesitsstatusxlog("Dispatcherdestinationhasnewstatus");}O
- Kamailio使用自定义DNS条目
无名387
KamailioKamailioDNS
绕过DNS服务器,使用自定义DNS条目,有多种办法,这里仅提供其中一种:modparam("corex","dns_cache","type=A;name=kamailio.org;addr=192.168.1.100;ttl=3600000;flags=2")#可以定义多次其中:-type=AIPv4-ttlTTL值-flags=2该条目永不过期知识是一点一滴攒起来的
- ssl解码
无名387
Kamailiossl
https://www.kamailio.org/dokuwiki/doku.php/troubleshooting:tls这篇文章说ssldump可以解码但是实操起来往往不行再请看这篇文章:https://osqa-ask.wireshark.org/questions/7886/ssl-decrypting-problem/还好我够机智,改了下/etc/kamailio/tls.cfg,内容为
- 快速安装方式安装开源OpenSIPS和CP控制界面
lonnng2004
opensipsmysqlopensipsCP
OpenSIPS是目前世界上主流的两个SIP软交换引擎(其中另外一个是kamailio)或者SIP信令服务器(个人认为是比较正确的称谓)。关于Opensips的基础和一些参数配置和安装方式笔者在很久以前的历史文档中有非常多的介绍。最近,很多用户使用OpenSIPS软交换平台做freeSBC或者其他的功能业务的实现,这些客户遇到很多的疑问和安装中也遇到很多问题,所以,为了让客户能够快速安装opens
- CentOS下Kamailio安装指南
安安爸Chris
引用帖子https://www.kamailio.org/wiki/packages/rpmsCentOS下,需要先把repo加入到系统中,这样yum可以找到cd/etc/yum.repos.d/wgethttp://download.opensuse.org/repositories/home:/kamailio:/v5.2.x-rpms/CentOS_7/home:kamailio:v5.2.
- 记录一次Kamailio的问题跟踪过程
无名387
Kamailio信息与通信
sngrep,发现kamailio收到bye请求之后,转发错了,每次必现。根据经验,收到的bye消息是对的,错误应该出在Kamailio路由上。下面是查错的步骤:第一步设置debug=3(一般情况下设置为2),运行下面这个命令:kamcmdcfg.seticoredebug3#检查过kamailio.cfg,里面有这一行:loadmodule"cfg_rpc.so"接下来复现问题,然后检查日志,找
- OpenSIPS自定义统计项目
无名387
OpenSIPSOPS自定义统计项目
有朋友问,怎么统计ops每日的呼叫量这就是需要自定义统计项目我第一感觉是dialog模块后来又查了下资料,statistics模块更合适,Kamailio也有同名模块
- Push Notification with Kamailio
bao231
Thisbrieftutorialshowshowto“freeze”SIPtransactiontothemomentthesubscriberwakesup.Thelogicissimplehere:AsterisksendsSIPINVITEtoKamailioSIPProxyKamailiodetectsdevicetypebyspecificX-headerandfreezesincom
- Kamailio踩坑记
无名387
Kamailiokamailioissue
分享几次踩坑/爬坑历史有一批sip终端用tcp注册到kamailio,最开始很正常,但随着终端数量的逐渐增加,部分终端需要很久才能成功注册第一步想到的是在kamailio上抓包,发现确实是kamailioclose了tcp连接第二步是把全局参数debug修改成3(默认是2),等问题复现后收集日志,跟源码对比这才发现是一个全局参数没设置好,tcp_max_connections默认是2048,当时终
- 我的Kamailio修炼历程
无名387
Kamailio信息与通信
大约六年前我在工程上用到Kamailio,只是用用,谈不上熟悉。如果没有特别的原因,估计也就这样了:拿过来,研究下,可以跑起来,但很多问题解释不了,解决不了,更谈不上从Kamailio的角度思考问题。转折点就是疫情,疫情刚开始时有段时间没什么事情,难得有这样的机会,于是仔细阅读Kamailio官网资料。大概坚持了一月左右,终于入门了。然后全网找相关资料,取长补短,在工程上不断印证。大概就是这样一个
- 评fred的mid-registrar for kamailio脚本
无名387
KamailioKamailiofredmid-registrar
#!KAMAILIO##Edgeproxyconfiguration#mid-registrarexample##!substdef"!REGISTRAR_IP!a.b.c.d!g"#!substdef"!REGISTRAR_PORT!5060!g"#!substdef"!MY_DOMAIN!whatever.net!g"#!substdef"!MY_IP_ADDR!e.f.g.h!g"#!sub
- 测试OpenSIPS3.2的uac_registrant模块
无名387
OpenSIPSOpenSIPSuac_registrant
试了试OpenSIPS3.2的uac_registrant模块,目标就是opensips向Kamailio注册,记录如下:kamailioip:192.168.31.63opensipsip:192.168.31.171向kamailiosubscriber表插入数据,username='1001',password='1234',启动kamailio向opensipsregistrant表插入数
- 分享fred的kamailio脚本
无名387
KamailioKamailiofred
##来源:https://github.com/fredposner/scripts/blob/master/kamailio/mid-registrar.cfg#!KAMAILIO##Edgeproxyconfiguration#mid-registrarexample##!substdef"!REGISTRAR_IP!a.b.c.d!g"#!substdef"!REGISTRAR_PORT!5
- Kamailio uac_replace和uac_restore
无名387
Kamailiouac_replaceuac_restore
uac模块包含的内容很多,本文仅讨论uac_replace和uac_restore先比较二段路由代码:#路由1$fU="alice";$tU="bob";$du=...;t_relay();exit;#OpenSIPS3.2似乎不允许这样修改主被叫,不清楚是出于什么样的考虑#路由2uac_replace_from('"alice"',"sip:"+"alice"+"@"+$fd);uac_repl
- 介绍kamailio的dialog模块
无名387
Kamailiokamailiodialog
#介绍kamailio的dialog模块`kamailio`的`dialog`模块一般有四个作用:-读写对话变量-跟`uac`模块配合,完成`uactrunkauth`功能-统计`early_dialogs`和`active_dialogs`等-利用`dialogprofile`实现分类统计功能或者实现呼叫限制功能`dialog`模块的参数可以配置如下:```modparam("dialog","
- Freeswitch 高级主题之用kamailio负载均衡
voipmaker
KamailioFreeSwitch
kamailio的前身叫openser,和opensips是兄弟,作为出色的sipproxy,在大并发量使用时经常用于负载均衡媒体服务器Asterisk、Freeswitch等实现集群。1.安装kamailio参考上一篇文章安装:Centos6.4上源码安装kamailio4.12.配置kamailio下面为配置好的主配置文件,dispacher模块有一些参数需要注意,默认下一跳地址的配置支持数据
- freeswitch系列二 kamailio 5.0安装及实现kamailio集成freeswitch
hry2015
freeswitch杂集sipfreeswitchkamailio
1.概述kamailio是个纯粹的SIP服务器。本文介绍先如何在debian8下安装debian5.0,然后详细介绍如何实现使用kamailio做freeswitch均衡负载。kamailio同时实现做为代理服务器、注册服务器、重定向服务器。2.在debian8安装debian5.02.1.安装环境这里的安装在和freeswitch系列一在debian中安装freeswitch1.6相同的服务器上
- kamailio dispatch负载均衡
flora_yao_bj
sipsip
kamailio的前身叫openser,和opensips是兄弟,作为出色的sipproxy,在大并发量使用时经常用于负载均衡媒体服务器Asterisk、Freeswitch等实现集群。1.安装kamailio参考上一篇文章安装:http://www.aiuxian.com/article/p-1454911.html2.配置kamailio下面为配置好的主配置文件,dispacher模块有一些参
- Centos 6.4 minimal kamailio编译安装
baiyangliu
安装websocket模块所需库yuminstalllibunistringlibunistring-devel提示:/usr/bin/ld:cannotfind-lmysqlclient解决办法:rpm-ivhMySQL-shared-5.6.14-1.linux_glibc2.5.x86_64.rpmrpm-ivhMySQL-devel-5.6.14-1.linux_glibc2.5.x86_
- Kamailio $ru vs $du
无名387
Kamailioruvsdu
本人就是这么理解的:$ru-requsturl,sip请求的第一行里面的地址$du-destinationurl,一般用来ip寻址$ru可读可写,可读就没什么好讨论的,如果修改了$ru会发生什么下面举例说明:request_route{if(is_method("INVITE")&&!has_totag()){$ru="sip:abc.com";$du="sip:192.168.1.100:508
- Kamailio数据库问题
旭哥的blog
最近两天在研究ip电话,大佬要求试试Kamailio,所以在ubuntu上安装了该软件,通过apt直接安装即可,但是在连接数据库的时候遇到了很讨厌的问题,相信大家也会遇到这样的问题,例如:在kamdbctlstart的时候,如果按照http://www.it610.com/article/5003503.htm配置mysql时(并不是这文章写的不对,我只是参考了mysql配置的部分),会报错:ER
- 略谈Kamailio调试
无名387
KamailioKamailio调试
Kamailio调试办法有很多,我先来抛转:kamcmdcfg.seticoredebug3一般debug(全局参数)设置为2,但通过上述命令可临时设置为3,然后收集日志,跟源码对照,以便找到问题。本人通过这个办法跟踪到很多问题。但如果是生产系统,千万不要这么玩火,切记!`kamcmdcfg.seticoredebug2`,再改回去通过debugger模块来跟踪问题kamailio自带的路由kam
- about sip via
无名387
Kamailiosipvia
找到一篇好文章,讲sipvia的https://nickvsnetworking.com/category/voip/kamailio/page/3/先找到这一行:It’sallabouttheVia从这里开始看坦白讲,我现在连一知半解都达不到
- SIP 系统容器化实践
line_aijava
SIPKamailioFreeswitchWebRTCVoIPCTI
由于SIP系统相对成熟,目前互联网上的SIP系统方案大多数都是基于虚拟机来实现的。本文是基于容器化实现SIP系统的方案以及遇到的问题总结。本文会展示两个系统的SIP实现,分别是智能语音机器人和CTI系统,不会涉及太多的业务,只是对于SIP架构实现的讨论。智能语音机器人系统在容器化之前,我们的方案也是基于VM的。整个架构为:kamailio作为sip服务器rtpengine作为rtp代理Freesw
- Kamailio mangler模块测试
无名387
Kamailiokamailiosdp修改
#Kamailiomangler模块测试mangler是一个很老的模块,可以修改`sdp`,可以修改和恢复`contact`头##修改`sdp`KamailioNative路由示例:```cfgsdp_mangle_ip("192.168.0.0/16"/*私网地址*/,"113.113.113.113"/*公网地址*/);route[LOCATION];...```这是进来的sdp:```sdp
- kamailio rtpengine模块关于via-branch的讨论
无名387
Kamailiortpenginertpengine1024程序员节
https://sr-users.sip-router.narkive.com/xRtgEcU0/rtpengine-via-branch-extra-question我查了下,rtpengine模块的主要作者有两个:-MaximSobolev,SippySoftware,Inc.-JuhaHeinanen,TuTPro,Inc.提问的Juha是其中之一而回答问题的RichardFuchs来自si
- Kamailio statsd模块测试
无名387
Kamailiostatsd
Kamailiostatsd模块测试准备statsd服务器git克隆cd/usr/localgitclonehttps://github.com/myoperator/grafana-graphite-statsd.gitcdgrafana-graphite-statsdmakeprep#创建log目录修改docker-compose.yml,给statsd增加一个环境变量STATSD_DEBUG
- iOS http封装
374016526
ios服务器交互http网络请求
程序开发避免不了与服务器的交互,这里打包了一个自己写的http交互库。希望可以帮到大家。
内置一个basehttp,当我们创建自己的service可以继承实现。
KuroAppBaseHttp *baseHttp = [[KuroAppBaseHttp alloc] init];
[baseHttp setDelegate:self];
[baseHttp
- lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具
brotherlamp
linuxlinux教程linux视频linux自学linux资料
那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和“淘气” 。
在本文中,我将讨论一个名为“lolcat”的小工具 – 它可以在终端中生成彩虹般的颜色。
何为 lolcat ?
Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat 命令,并为 cat
- MongoDB索引管理(1)——[九]
eksliang
mongodbMongoDB管理索引
转载请出自出处:http://eksliang.iteye.com/blog/2178427 一、概述
数据库的索引与书籍的索引类似,有了索引就不需要翻转整本书。数据库的索引跟这个原理一样,首先在索引中找,在索引中找到条目以后,就可以直接跳转到目标文档的位置,从而使查询速度提高几个数据量级。
不使用索引的查询称
- Informatica参数及变量
18289753290
Informatica参数变量
下面是本人通俗的理解,如有不对之处,希望指正 info参数的设置:在info中用到的参数都在server的专门的配置文件中(最好以parma)结尾 下面的GLOBAl就是全局的,$开头的是系统级变量,$$开头的变量是自定义变量。如果是在session中或者mapping中用到的变量就是局部变量,那就把global换成对应的session或者mapping名字。
[GLOBAL] $Par
- python 解析unicode字符串为utf8编码字符串
酷的飞上天空
unicode
php返回的json字符串如果包含中文,则会被转换成\uxx格式的unicode编码字符串返回。
在浏览器中能正常识别这种编码,但是后台程序却不能识别,直接输出显示的是\uxx的字符,并未进行转码。
转换方式如下
>>> import json
>>> q = '{"text":"\u4
- Hibernate的总结
永夜-极光
Hibernate
1.hibernate的作用,简化对数据库的编码,使开发人员不必再与复杂的sql语句打交道
做项目大部分都需要用JAVA来链接数据库,比如你要做一个会员注册的 页面,那么 获取到用户填写的 基本信后,你要把这些基本信息存入数据库对应的表中,不用hibernate还有mybatis之类的框架,都不用的话就得用JDBC,也就是JAVA自己的,用这个东西你要写很多的代码,比如保存注册信
- SyntaxError: Non-UTF-8 code starting with '\xc4'
随便小屋
python
刚开始看一下Python语言,传说听强大的,但我感觉还是没Java强吧!
写Hello World的时候就遇到一个问题,在Eclipse中写的,代码如下
'''
Created on 2014年10月27日
@author: Logic
'''
print("Hello World!");
运行结果
SyntaxError: Non-UTF-8
- 学会敬酒礼仪 不做酒席菜鸟
aijuans
菜鸟
俗话说,酒是越喝越厚,但在酒桌上也有很多学问讲究,以下总结了一些酒桌上的你不得不注意的小细节。
细节一:领导相互喝完才轮到自己敬酒。敬酒一定要站起来,双手举杯。
细节二:可以多人敬一人,决不可一人敬多人,除非你是领导。
细节三:自己敬别人,如果不碰杯,自己喝多少可视乎情况而定,比如对方酒量,对方喝酒态度,切不可比对方喝得少,要知道是自己敬人。
细节四:自己敬别人,如果碰杯,一
- 《创新者的基因》读书笔记
aoyouzi
读书笔记《创新者的基因》
创新者的基因
创新者的“基因”,即最具创意的企业家具备的五种“发现技能”:联想,观察,实验,发问,建立人脉。
第一部分破坏性创新,从你开始
第一章破坏性创新者的基因
如何获得启示:
发现以下的因素起到了催化剂的作用:(1) -个挑战现状的问题;(2)对某项技术、某个公司或顾客的观察;(3) -次尝试新鲜事物的经验或实验;(4)与某人进行了一次交谈,为他点醒
- 表单验证技术
百合不是茶
JavaScriptDOM对象String对象事件
js最主要的功能就是验证表单,下面是我对表单验证的一些理解,贴出来与大家交流交流 ,数显我们要知道表单验证需要的技术点, String对象,事件,函数
一:String对象;通常是对字符串的操作;
1,String的属性;
字符串.length;表示该字符串的长度;
var str= "java"
- web.xml配置详解之context-param
bijian1013
javaservletweb.xmlcontext-param
一.格式定义:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>contextConfigLocationValue></param-value>
</context-param>
作用:该元
- Web系统常见编码漏洞(开发工程师知晓)
Bill_chen
sqlPHPWebfckeditor脚本
1.头号大敌:SQL Injection
原因:程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,
获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
本质:
对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。
示例:
String query = "SELECT id FROM users
- 【MongoDB学习笔记六】MongoDB修改器
bit1129
mongodb
本文首先介绍下MongoDB的基本的增删改查操作,然后,详细介绍MongoDB提供的修改器,以完成各种各样的文档更新操作 MongoDB的主要操作
show dbs 显示当前用户能看到哪些数据库
use foobar 将数据库切换到foobar
show collections 显示当前数据库有哪些集合
db.people.update,update不带参数,可
- 提高职业素养,做好人生规划
白糖_
人生
培训讲师是成都著名的企业培训讲师,他在讲课中提出的一些观点很新颖,在此我收录了一些分享一下。注:讲师的观点不代表本人的观点,这些东西大家自己揣摩。
1、什么是职业规划:职业规划并不完全代表你到什么阶段要当什么官要拿多少钱,这些都只是梦想。职业规划是清楚的认识自己现在缺什么,这个阶段该学习什么,下个阶段缺什么,又应该怎么去规划学习,这样才算是规划。
- 国外的网站你都到哪边看?
bozch
技术网站国外
学习软件开发技术,如果没有什么英文基础,最好还是看国内的一些技术网站,例如:开源OSchina,csdn,iteye,51cto等等。
个人感觉如果英语基础能力不错的话,可以浏览国外的网站来进行软件技术基础的学习,例如java开发中常用的到的网站有apache.org 里面有apache的很多Projects,springframework.org是spring相关的项目网站,还有几个感觉不错的
- 编程之美-光影切割问题
bylijinnan
编程之美
package a;
public class DisorderCount {
/**《编程之美》“光影切割问题”
* 主要是两个问题:
* 1.数学公式(设定没有三条以上的直线交于同一点):
* 两条直线最多一个交点,将平面分成了4个区域;
* 三条直线最多三个交点,将平面分成了7个区域;
* 可以推出:N条直线 M个交点,区域数为N+M+1。
- 关于Web跨站执行脚本概念
chenbowen00
Web安全跨站执行脚本
跨站脚本攻击(XSS)是web应用程序中最危险和最常见的安全漏洞之一。安全研究人员发现这个漏洞在最受欢迎的网站,包括谷歌、Facebook、亚马逊、PayPal,和许多其他网站。如果你看看bug赏金计划,大多数报告的问题属于 XSS。为了防止跨站脚本攻击,浏览器也有自己的过滤器,但安全研究人员总是想方设法绕过这些过滤器。这个漏洞是通常用于执行cookie窃取、恶意软件传播,会话劫持,恶意重定向。在
- [开源项目与投资]投资开源项目之前需要统计该项目已有的用户数
comsci
开源项目
现在国内和国外,特别是美国那边,突然出现很多开源项目,但是这些项目的用户有多少,有多少忠诚的粉丝,对于投资者来讲,完全是一个未知数,那么要投资开源项目,我们投资者必须准确无误的知道该项目的全部情况,包括项目发起人的情况,项目的维持时间..项目的技术水平,项目的参与者的势力,项目投入产出的效益.....
- oracle alert log file(告警日志文件)
daizj
oracle告警日志文件alert log file
The alert log is a chronological log of messages and errors, and includes the following items:
All internal errors (ORA-00600), block corruption errors (ORA-01578), and deadlock errors (ORA-00060)
- 关于 CAS SSO 文章声明
denger
SSO
由于几年前写了几篇 CAS 系列的文章,之后陆续有人参照文章去实现,可都遇到了各种问题,同时经常或多或少的收到不少人的求助。现在这时特此说明几点:
1. 那些文章发表于好几年前了,CAS 已经更新几个很多版本了,由于近年已经没有做该领域方面的事情,所有文章也没有持续更新。
2. 文章只是提供思路,尽管 CAS 版本已经发生变化,但原理和流程仍然一致。最重要的是明白原理,然后
- 初二上学期难记单词
dcj3sjt126com
englishword
lesson 课
traffic 交通
matter 要紧;事物
happy 快乐的,幸福的
second 第二的
idea 主意;想法;意见
mean 意味着
important 重要的,重大的
never 从来,决不
afraid 害怕 的
fifth 第五的
hometown 故乡,家乡
discuss 讨论;议论
east 东方的
agree 同意;赞成
bo
- uicollectionview 纯代码布局, 添加头部视图
dcj3sjt126com
Collection
#import <UIKit/UIKit.h>
@interface myHeadView : UICollectionReusableView
{
UILabel *TitleLable;
}
-(void)setTextTitle;
@end
#import "myHeadView.h"
@implementation m
- N 位随机数字串的 JAVA 生成实现
FX夜归人
javaMath随机数Random
/**
* 功能描述 随机数工具类<br />
* @author FengXueYeGuiRen
* 创建时间 2014-7-25<br />
*/
public class RandomUtil {
// 随机数生成器
private static java.util.Random random = new java.util.R
- Ehcache(09)——缓存Web页面
234390216
ehcache页面缓存
页面缓存
目录
1 SimplePageCachingFilter
1.1 calculateKey
1.2 可配置的初始化参数
1.2.1 cach
- spring中少用的注解@primary解析
jackyrong
primary
这次看下spring中少见的注解@primary注解,例子
@Component
public class MetalSinger implements Singer{
@Override
public String sing(String lyrics) {
return "I am singing with DIO voice
- Java几款性能分析工具的对比
lbwahoo
java
Java几款性能分析工具的对比
摘自:http://my.oschina.net/liux/blog/51800
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能
- JVM参数配置大全
nickys
jvm应用服务器
JVM参数配置大全
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -
- 搭建 CentOS 6 服务器(14) - squid、Varnish
rensanning
varnish
(一)squid
安装
# yum install httpd-tools -y
# htpasswd -c -b /etc/squid/passwords squiduser 123456
# yum install squid -y
设置
# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
# vi /etc/
- Spring缓存注解@Cache使用
tom_seed
spring
参考资料
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/
http://swiftlet.net/archives/774
缓存注解有以下三个:
@Cacheable @CacheEvict @CachePut
- dom4j解析XML时出现"java.lang.noclassdeffounderror: org/jaxen/jaxenexception"错误
xp9802
java.lang.NoClassDefFoundError: org/jaxen/JaxenExc
关键字: java.lang.noclassdeffounderror: org/jaxen/jaxenexception
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式
执行时却抛出以下异常:
Exceptio