JAVA
sfdev
这个作者很懒,什么都没留下…
展开
-
中文化和国际化问题权威解析之一:字符编码发展历程
前几天看文初的《精武门之Web安全研讨会首日感受》,说到利用字符集攻击时提到以前宝宝写的一篇有关国际化的文章,趁机再次拜读了宝宝的这篇大作,不得不感慨宝宝的写作功底,无敌!这么好的文章不分享出来实在是太可惜了,在此将宝宝的大作转帖于此;作者序在我开发Java程序的几年中,遇到得最多,也是别人向我提问最多的问题,就是各种各样看似稀奇古怪的中文乱码问题了。网上也有许多解释和解决Java中文问题转载 2009-01-13 20:23:00 · 10954 阅读 · 5 评论 -
ICE官方文档中2.2【The Ice Architecture】章节翻译之二
2.2.3 Slice(Specification Language for ICE)就像前面提到的,每个ice对象都有一个接口,接口中包括很多的操作;接口、操作、数据类型要想在客户端和服务端进行交互,就需要用Slice语言来进行定义;Slice允许用某种方式定义客户端和服务端交互的契约,该契约是与编程语言无关的,比如C++、Java、C#;Slice的定义被编译器编译成特定编程语言对应的AP翻译 2008-12-07 20:12:00 · 3349 阅读 · 0 评论 -
ICE官方文档中2.2【The Ice Architecture】章节翻译之一
每次去参加各类大会或者培训之后,就下定决心说要好好学习英语,不过这个目标还是一次次的没有实现;当然工作忙、时间紧、没语境……都成了有力的接口;但是这次偶想到一个退而求其次的方法,虽然没有练习听力的语境,但是我们可以先把英语翻译能力练习起来,平时看英文doc的时间也不少,自认为看大多数文档都不存在啥障碍,但此次的要求是将他们翻译出来,呵呵,别小看哦,能看懂和能翻译出来可完全是两个level!不信你也翻译 2008-12-04 20:37:00 · 3280 阅读 · 0 评论 -
中文化和国际化问题权威解析之七:JS中的escape、encodeURI、encodeURIComponent解惑
前面一篇文档《中文化和国际化问题权威解析之五:URL编码/Misc》主要是从服务端、浏览器两个角度来看待URL编码;除此之外,我们还可能在客户端执行一些js脚本来进行URL编码,与此相关的最主要的三个js function为:escape():采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符原创 2009-01-20 20:05:00 · 3630 阅读 · 4 评论 -
中文化和国际化问题权威解析之六:MIME编码/字符传输编码
MIME(Multipurpose Internet Mail Extensions) 是"多用途Internet邮件扩充协议"的缩写,在 MIME 协议之前,邮件的编码曾经有过 UUENCODE 等编码方式 ,但是由于 MIME 协议算法简单,并且易于扩展,现在已经成为邮件编码方式的主流,不仅是用来传输 8 bit 的字符,也可以用来传送二进制的文件 ,如邮件附件中的图像、音频等信息,而且扩展了原创 2009-01-20 19:48:00 · 3180 阅读 · 3 评论 -
中文化和国际化问题权威解析之五:URL编码/Misc
通过前面中文化、国际化问题解决的系列1-4,相信大家对字符集、字符编码、字符解码、字符乱码、Java中文问题解决等都有了一个比较清晰的认识;但文中的信息并非包罗万象,结合到自己平时对于字符集、编码相关的一些疑惑,本篇对一些前文中并未提及的一些问题进行补充,以便让该系列更加完善和全面;本文主要解决以下两个问题:其一,解决UltraEdit菜单中的 文件 -> 转换 子菜单中涉及的一些名词疑惑,主要涉原创 2009-01-20 19:07:00 · 5175 阅读 · 0 评论 -
中文化和国际化问题权威解析之三:Java中文问题分析
本章从实际的中文问题中,分析问题的根本原因,以及解决之道。注意,本章虽然着重说明“中文问题”,但本章所推出的结论却是适合于世界所有语言文字的。概述我们在实际开发中碰到的中文问题,真是形形色色,无法一一列举。但是它们不是随机产生的,而是有规律可循,有办法解决的。我们碰到最多的中文问题,都发生在使用Java Servlet写WEB应用时。其次,使用Java Mail API发送转载 2009-01-13 21:37:00 · 6244 阅读 · 1 评论 -
中文化和国际化问题权威解析之二:Java国际化基础
我们知道Unicode为国际化(I18n)提供了坚实的基础。但是Unicode不等同于国际化。使用Unicode的Java语言,若是使用不当,同样达不到国际化的目的。让我们来看一下Java是怎样处理Unicode的。Java的字符类型和C语言不同,Java的字符类型“char”是一个16位长的整数,而C语言的char是8位,等同于一个字节,只能表示单字节的字符(拉丁语系文字)。所以转载 2009-01-13 21:06:00 · 7790 阅读 · 2 评论 -
中文化和国际化问题权威解析之四:Java中文化和国际化攻略
一般攻略既然在Java内部是直接使用Unicode表示一切字符的,表达中文自然不成问题。因此所谓的中文问题并不是由Java本身引起的。而是因为对Java和Unicode理解不透或应用不当引起的。下面列出的原则,是解决一切中文问题的总纲:在Java内部,正确使用Unicode标准。对于中文来说,每个汉字使用一个char表示。 在所有的输入输出环节,指明正确的编码方式,进行正确的字符到转载 2009-01-14 09:20:00 · 3533 阅读 · 1 评论 -
重新认识ICE【概览】
终于知道ICE是啥意思啦,呵呵!本篇主要是对ICE的一个概览,让我们能够比较全面的了解它主要是项什么技术?主要应用场景?以及主要核心组件等;后续还会继续推出一些实战的心得与笔记;ICE【Internet Communications Engine】是ZeroC公司的主打、核心产品,在ICE的基础上,还有很多的衍生产品,比如Ice-E【Embedded Ice】、ICE Touch、ICE fo原创 2008-11-16 13:38:00 · 4675 阅读 · 2 评论 -
Quartz任务调度CronTrigger配置格式详细说明
CronTrigger配置完整格式为: [秒] [分] [小时] [日] [月] [周] [年] 序号说明 是否必填 允许填写的值允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3小时 是 0-23 , - * /原创 2009-03-02 19:54:00 · 4162 阅读 · 2 评论 -
Quartz中扩展MethodInvokingJobDetailFactoryBean实现对任务调度的拦截
利用Quartz来实现对任务的调度已经被广泛地应用了,一个利用Quartz来进行任务调度的典型配置如下:<bean id="xxJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> false原创 2009-03-08 19:30:00 · 27540 阅读 · 3 评论 -
Web安全漏洞之:JDK1.5环境下扫描远程调试端口导致JVM崩溃【JDWP exit error JVMTI_ERROR_NONE(0)】
问题描述:<br />对运行在JDK 1.5版本下的java应用服务器进行端口扫描,扫描的方式可以用相关扫描软件,最简单的是直接用ping/telnet命令,有闲情还可以自己写一段代码进行socket连接,扫描时会发现java进程crash,经测试百发百中;查看运行日志显示:<br />ERROR: transport error 202: handshake failed - received >GET / HTTP/1.0< - excepted >JDWP-Handshake< ["transport原创 2010-08-21 13:14:00 · 19012 阅读 · 1 评论 -
JDK5.0中JVM堆模型、GC垃圾收集详细解析
前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的OOM了!问题虽然蹊跷,但也趁此机会再次对JVM堆模型、GC垃圾算法等进行了一次系统梳理;基本概念堆/HeapJVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Windows原创 2009-08-25 15:49:00 · 12630 阅读 · 7 评论 -
网店版重生系列:多数据源单sqlMapClient导致NullPointerException问题跟踪
从前面的《网店版重生系列:都是Spring配置中自动注入惹的祸》中我们可以看出一些有关datasource、sqlMapClientTemplate、sqlMapClient的相关配置信息;整体而言,采取的方式为:其一,单实例sqlMapClient,只配置configLocation属性,不配置datasource;其二,sqlMapClientTemplate中配置动态datasource、s原创 2009-06-20 17:00:00 · 4364 阅读 · 0 评论 -
网店版重生系列:Linux下Jboss启动、关闭、端口配置等常见问题FAQ
单台Linux服务器中如何部署多个独立应用,即多个应用不能run在一个jboss实例中?换言之,这个问题也可以这样描述:在单台Linux服务器中服务启动多个Jboss实例?默认情况下,jboss启动时加载server/default/目录下的配置,要实现多个实例的启动,主要是解决端口冲突的问题,因为一套端口只能被一个应用占有;一般来说,我们可以在Jboss启动时通过-Djboss.server原创 2009-06-13 18:14:00 · 14148 阅读 · 0 评论 -
网店版重生系列:因为webwork.configuration.xml.reload遭遇Web应用性能测试瓶颈
网店版重生项目中,因为我们要将最主要的核心数据由Oracle迁移到分布式Mysql中;虽然说业务逻辑不进行任何改动,只是将数据源由单一的Oracle改造成基于Mysql的动态数据源,但为了保险起见,我们还是要求做一次性能测试,但怎么圧呢?这个系统已经2年没有比较大的系统变动了,但是用以前的性能测试结果来和新系统做对比,大家都觉得不那么匹配,所以我们决定:对现有的老系统的关键模块重新进行一次压力测试原创 2009-06-14 15:31:00 · 1958 阅读 · 0 评论 -
网店版重生系列:回头看Jboss配置项CatchSystemOut、Java2ClassLoadingCompliance、UseJBossWebLoader
最近一直忙于做一个纯技术驱动的项目:网店重生!就是要把网店版改造成为基于Mysql的分布式应用;由于在过去的1年半的时间里面,网店版都没有怎么发展,只是一些例行维护;此次要这么大规模重构的确是一个不小的挑战,那在这个重构过程中,我们也再次遇到了当初的一些老问题,但由于以前的主力开发人员早已经不在一个团队里面了,所以很多的小问题还是让我们费了一些力气,趁此机会将这个过程中遇到的一些小问题记录下来;原创 2009-06-06 16:59:00 · 6400 阅读 · 0 评论 -
Spring中集成Quartz时遭遇Failure obtaining db row lock异常
今天在一个新的项目中用Spring集成Quartz来进行任务调度,和以往一样,配置好JobDetail、Trigger、SchedulerFactoryBean启动,却遭遇到如下异常信息:org.springframework.beans.factory.BeanCreationException: Error creating bean with name sfb defined in UR原创 2009-07-18 17:44:00 · 35036 阅读 · 4 评论 -
网店版重生系列:都是Spring配置中自动注入惹的祸
在对Spring Container管理的bean进行配置时,有一个很好用的功能就是自动注入,可以根据不同规则对bean所依赖的bean进行自动set,相信最常用的就是设置default-autowire="byName"这种方式啦;这样我们在进行配置时就可以减少很多的xml代码、当我们在Java代码中新增或减少bean的注入时就无需再对xml配置进行同步变更(针对采取xml配置的方式,若采用An原创 2009-05-03 12:04:00 · 7453 阅读 · 3 评论 -
基于Spring打造简单高效通用的异步任务处理系统
背景随着应用系统功能的不断新增,而某些功能的实现对实时性要求并不是那么高,但是逻辑却很复杂、执行比较耗时,比如涉及外部系统调用、多数据源等等;此时,我们就希望可以让这些复杂的业务逻辑放在后台执行,而前台与用户的交互可以不用等待,从而提高用户体验;另外,从系统架构这个层面来说,我们也希望按照不同功能来拆分,以保持各个系统之间的低耦合,当一个系统出现问题时不会影响到其他系统,并且对于独立的各个原创 2009-04-08 09:39:00 · 23859 阅读 · 17 评论 -
回头看JDK5中的concurrent包、线程池
最近的Notiy系统终于快告一段落了,已经进入QA测试阶段,真正编码的那几天时间真叫人怀念啊!已经好久没有过这种畅快的感觉了,倒不是说平时完全没机会编码,主要是平时更多的涉及业务逻辑;Notify系统中为了让系统更轻量级,低耦合,对于并发操作的核心主要是基于JDK自带的concurrent包,由Doug Lea捐赠;下面就回顾下这个包中的几个重要类、以及重要方法、属性等;concurrent并原创 2008-12-30 16:22:00 · 5292 阅读 · 4 评论 -
初识OpenID--OP/RP之争
前段时间,公司某些同学对OpenID进行了预研,偶也去参加了预研结果报告会,算是初次比较完整的接触OpenID;首先来看看OpenID规范文档中的介绍:OpenID 认证提供了一种方式,可以让用户证明自己对某个 Identifier 拥有控制权。 它不需要 Relying Party 去访问用户的凭据比如密码或者其他的敏感信息比如电子邮件地址等。 OpenID 是分散的。不需要一个中央官方机构原创 2008-10-23 15:57:00 · 3373 阅读 · 0 评论 -
常用加密算法及其应用场景介绍PPT截图
去年在网店时,曾经就《常用加密算法和ASO/SSO方案》这个主题进行了分享,当时分享的主要目的是介绍集团内已经在使用的一些免登方案,因为免登方案中涉及一些加密、签名算法,所以也就顺便整理了一些;今年年初,我到IST之后,又研究了一段时间的WS-Security,此次还涉及到了证书和一些跨平台特性;在这个过程中,对以前的所理解的一些概念进行了完善,具体见前段时间的一些文章,参加《SECURE》分类;原创 2008-10-23 19:14:00 · 4952 阅读 · 6 评论 -
遭遇OutOfMemoryError
这几天,网店系统基础架构进行了一次大的升级,升级之后例行的进行了压力测试,以前几次大的项目发布压力测试都没有任何问题,没想到这次出事故啦,而且是内存泄露?系统运行环境:硬件:Intel(R) Xeon(R) CPU 2.0G、4G RAM、Linux 2.6.9-42.ELsmp #1 SMP 软件:jboss-4.0.5.GA [Java HotSpot(TM) Server VM (bui原创 2008-01-18 12:38:00 · 31098 阅读 · 7 评论 -
关于JBOSS端口被占用的问题
今天早上启动jboss的时候出现端口1098被占用的情况,但是我是第一次启动jboss,怎么也会报这个错误? 用netstat命令看了下,的确1098端口被占用了,显示:netstat -an | find "1098"TCP 10.2.16.43:1098 60.191.30.81:16000 ESTABLISHED但这不是JBOSS占原创 2008-01-10 19:11:00 · 6510 阅读 · 0 评论 -
Cache系统知多少
本次cache兴趣小组的kickoff主要是给大家介绍了一些常见cache系统,以及在项目选型中需要考虑的一些因素,不同的应用场景下有哪些cache系统可供选择等等......;各个部分也都讲得很粗粒度,主要是抛砖作用;ppt中的关键两页内容如下;详细内容可见附件PPT;Cache系统实现常见手段Memory Cache Page:squid、cacheflow Data: Ja原创 2008-01-10 15:09:00 · 1671 阅读 · 1 评论 -
关于用dom4j实现xml文件输出时格式设置的发现
昨天在进行萧山校产的报表配置的时候遇到一个问题,我要求输出的xml文件中保留我原来的内容(内容中包括有很多的空格),但是dom4j在输出文件时自动将这些空格去除了,经研究有以下发现:当我们在用dom4j处理xml文件输出的时候可能会遇到以下的问题,就是我们要求每个element中的text保留我写入的原始信息,比如说空格不能被去除;比如说我们要输出xml文件中的内容为: James Strach原创 2008-01-02 19:13:00 · 7076 阅读 · 1 评论 -
.Net调用Java端带有WS-Security支持的Web Service各方案实战
到现在为止,我们AEP平台已经发布很长一段时间了,也有很多ISV接入并上线了,就语言而言,目前主要有三类:Java、.Net、Php;Java和Php的调用不存在很复杂的问题,但是.Net就要相对复杂不少, 现在已上线的ISV采用的是.Net SDK 2.0 + WSE 2.0【Web Services Enhancements】,但是随着.Net 3.0和3.5的普及,我们需要支持更多的.Net原创 2008-03-25 17:53:00 · 5031 阅读 · 5 评论 -
Xfire在客户端验证WSS签名后的Web Service出错问题的解决
在我们AEP开放API接口(Axis2+WSS4J)的时候,考虑了很多和其他平台的互通问题,比如和.Net、PHP的,结果后院差点起火,Java客户端用Xfire验证签名时居然出错,但只是一个提示出错信息,并不影响正常的签名验证和接口返回值,所以前面的工程师就没有当一回事;客户端InHandler部分代码:client.addInHandler(new DOMInHandler());Pr原创 2008-03-20 20:42:00 · 5827 阅读 · 0 评论 -
Java与.Net环境下RSA加密解密交互不成功的问题解决
由于项目需要,我们要实现Java环境下面用RSA公钥对信息加密、然后在.Net环境下面用RSA私钥解密的这个功能;由于以前没有深入接触过.Net,所以遇到这个问题的时候还是心里比较没底,但是我觉得这个问题肯定能够解决的,因为RSA的加密解密算法已经太成熟了,各语言应该都会提供标准支持才对;但经过测试之后发现:原来跨平台间的交互还是存在很多障碍的,各平台对标准的支持度相差太多;直接体现就是本平台原创 2008-03-07 15:59:00 · 11395 阅读 · 6 评论 -
JAVA启动参数大全之三:非Stable参数
前面我们提到用-XX作为前缀的参数列表在jvm中可能是不健壮的,SUN也不推荐使用,后续可能会在没有通知的情况下就直接取消了;但是由于这些参数中的确有很多是对我们很有用的,比如我们经常会见到的-XX:PermSize、-XX:MaxPermSize等等;下面我们将就Java HotSpot VM中-XX:的可配置参数列表进行描述;这些参数可以被松散的聚合成三类:行为参数(Behavioral翻译 2008-01-24 18:51:00 · 20661 阅读 · 0 评论 -
JAVA启动参数大全之二:非标准参数
非标准参数又称为扩展参数,其列表如下:-Xint 设置jvm以解释模式运行,所有的字节码将被直接执行,而不会编译成本地码。 -Xbatch 关闭后台代码编译,强制在前台编译,编译完成之后才能进行代码执行; 默认情况下,jvm在后台进行编译,若没有编译完成,则前台运行代码时以解释模式运行。 -Xbootclasspath:bootclasspath 让jvm从指定路径(可以是分号分隔的目录、jar、翻译 2008-01-24 15:51:00 · 6941 阅读 · 2 评论 -
遭遇Bad version number in .class file
为了测试各种格式的证书读取操作,我写了个很简单的Test类,结果却出现如下错误:java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineCl原创 2008-04-14 18:05:00 · 1719 阅读 · 0 评论 -
试用log4jdbc
近日发现一个好东东log4jdbc,他是一个JDBC驱动器,能够记录SQL日志和SQL执行时间等信息。log4jdbc使用SLF4J(Simple Logging Facade For Java)作为日志系统。特性:1.支持JDBC3和JDBC4,其中JDBC3对应于JDK 1.4 or 1.5,JDBC4要求JDK 1.6或以上。2.支持现有大部分JDBC驱动。3.易于配置(在大部分情况下,只需原创 2008-04-23 14:15:00 · 13264 阅读 · 1 评论 -
Java中用HttpsURLConnection访问Https链接的问题
在web应用交互过程中,有很多场景需要保证通信数据的安全;在前面也有好多篇文章介绍了在Web Service调用过程中用WS-Security来保证接口交互过程的安全性,值得注意的是,该种方式基于的传输协议仍然是Http,采用这种方式可扩展性和数据交互效率比较高;另外一种实现方式就是用Https,他是在协议层对Http的再次封装,加入了SSL/TLS,采用该协议进行通信的数据全部都会被加密,由于目原创 2008-09-21 11:21:00 · 52391 阅读 · 2 评论 -
DB事务隔离级别回顾
DB之所以设定事务隔离级别,其重要原因就是要避免一些常见的脏数据的读写等问题,根据不同的事务隔离级别,我们能够在数据读写并发效率和数据一致性方面取得不一样的效果;在具体进入事务隔离级别之前,我们首先来看一下到底哪些情况是我们在DB操作中不希望看到的: Dirty Read 脏数据读取原创 2008-06-13 15:15:00 · 2314 阅读 · 0 评论 -
Spring中事务的传播属性详解
我们用Spring时,很多时候都会用到他的声明式事务,简单的在配置文件中进行一些规则配置,利用Spring的AOP功能就能轻松搞定事务问题;这里面就涉及到一个事务的传播属性问题【Propagation】,他在TransactionDefinition接口中定义,有兴趣可以看看src,共有7种选项可用: PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就新建原创 2008-06-13 16:12:00 · 1418 阅读 · 0 评论 -
JAX-WS与JAX-RPC之间是啥关系?
Web 服务已经出现很久了。首先是 SOAP,但 SOAP 仅描述消息的情况,然后是 WSDL,WSDL 并不会告诉您如何使用 Java™ 编写 Web 服务。在这种情况下,JAX-RPC 1.0 应运而生。经过数月使用之后,编写此规范的 Java Community Process (JCP) 人员认识到需要对其进行一些调整,调整的结果就是 JAX-RPC 1.1。该规范使用大约一年之后,JCP原创 2008-06-11 19:20:00 · 6807 阅读 · 0 评论 -
WSDL绑定样式各种组合优劣势比较
目前Web服务的相关标准是WSDL【Web服务描述语言】,一种标准的类似XML Schema的语言,用它来详细说明Web服务和SOAP【简单对象访问协议】,Web服务使用的实际的沟通协议就是SOAP。WSDL 绑定样式由两个属性组合而成:style、use;style可以是RPC/Document,use可以是Encoded/Literal;下面解释下这4个名词的意思:RPC 样式RP原创 2008-06-12 17:46:00 · 6593 阅读 · 3 评论