Aug 24

 在myblog 1.5 P1版中我加入了Compass搜索的高亮支持。我参考了springside的代码实现了高亮,其实也是很简单的。在原来的searchController里面用的是默认的CompassSearchHelper来搜索的。         if (searchHelper == null) {             searchHelper = new CompassSearchHelper(getCompass(), getPageSize());         }         CompassSearchCommand searchCommand = new CompassSearchCommand();    ...

[more..]

Aug 23

Compass是对lucene进行封装的java项目,使得在spring,hibernate这种环境下非常容易的实现全文检索,也极大的提高了效率。所以在myblog里面我也使用了compass作为全文索引。 从Compass的samples里面的petclinic里面可以找到Compass的配置。     <bean id="compass" class="org.compass.spring.LocalCompassBean">         <property name="resourceLocations">             <list>             &...

[more..]

Jun 07
   上次也碰到了这个问题,刚开始还以为是Tomcat Eclipse Plug-in 的问题,后来直接 bin/startup.sh 启动也不行,总是会报无法编译Jsp的错误。 org.apache.jasper.JasperException: Unable to compile class for JSP: 后来发现是我配置的这个host出现这个错误,其他的webapps是没有问题的。我的host配置是这样的       <Host name="dev.feloo.com" appBase="/home/rory/projects/feloo1.2/WebRoot" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">     ...

[more..]

Mar 09
tomcat5中,因为众所周知的原因,为了保证get/post数据都采用相同的UTF8编码,我们在server.xml中进行了如下设置: maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="99" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/> 这里指定了get时候的数据编码。但是,当使用IIS作为webserver转发servlet/jsp请求给Tomcat时候,这个设置却 失效了。其实原因很简单:IIS是通过AJP协议,把请求转发到Tomcat监听的8009端口上的,所以这里针对8080的设置自然就无效了。正确的方 法是进行下面的设置: debug="0"...

[more..]

Oct 22
      我们的项目用到了xmlrpc,不过还是用的2.x版本的。由于xmlrpc3.x地推出。提供了NULL,Serializable等的支持,将原来的Hashtable改成了Map,Vector改成了List。都是不错的进步。所以我们决定从xmlrpc2.x升级到xmlrpc3.x.       在spring里面有几个ServiceExporter,org.springframework.remoting.rmi.RmiServiceExporter、org.springframework.remoting.caucho.HessianServiceExporter、org.springframework.remoting.caucho.BurlapServiceExporter。不过没有xmlrpc的serviceExporter,原来我们是自己封装的XmlRpcServer,用servlet提供服务。(eg:http://localhost:8080/community/service/xmlr...

[more..]

Oct 16
不知道大家有没有碰到,还是没有这种需求。就是用like来查询,我们没有用Lucene,Compass这种全文索引的方案,我们只是简单的添加%进行like查询。用户搜索的时候就使用*和?来代表任意和一个。所以要对"%"和"_"进行转义,我们使用的是oracle数据库。sql语句看起来可能是这样的。 Select   *   FROM  t_user  where  nickname  like   ' %Goo\_D '   escape   ' \ ' 这里对_进行转义了。因为用户昵称包含下划线,如果不进行转义就表示一个任意字符。有时候我们可能还需要对%进行转义。同样的方法在%前加\% 但是比起普通的like语句。多了一个声明转义符的语句。所以我们会想到这样的语句 DetachedCriteria criteria  =  DetachedCriteria.forClass(User. class );...

[more..]

Aug 10
         jspark 的这篇文章《 开发阶段eclipse下面的spring容器的启动优化 》讲到如何加快spring的启动速度。非常感谢 jspark. 一下是引用的原文:   最近在负责一个大项目,项目组成员包括项目经理大概10个人左右。项目技术用struts+spring+hibernate实现。项目的规模相对来说是比较大的,总共有10大模块,每个大模块又分为有十几个、甚至几十个小模块。开发工具用eclipse,由于在开发阶段,项目开发成员需要频繁重启服务器。在启动服务器的时候,每次启动时间总是会超过1分钟。记得以前在做另外一个项目时,启动时间不到5秒钟,相差了10倍,而且项目规模是差不多的。     从初步分析来说,应该是hibernate解释hbm.xml时花费时间,或者可能是spring容器启动并解释所有的bean配置文件。诊断了一下,发现1分钟消耗的时间主要分布在hibernate解释hbm.xml花费5秒;spring容器从启动到解释bean配置文件竟然花了...

[more..]

Jul 22
     虽然项目全部采用了UTF-8编码,所有的源文件*.java,*.jsc,*.html,*.ftl都采用了UTF-8编码。可是还是出现了乱码问题。很是不爽,后来找到了tomcat,和resin的配置。 Tomcat的配置。(conf/server.xml)      <!--  Define a non-SSL HTTP/1.1 Connector on port 8080  -->      < Connector  port ="80"  maxHttpHeaderSize ="8192"                m...

[more..]

Jul 17
        自从换工作之后就没有研究过DWR了。下载了最新的DWR2.0M2版本。2.0加了很多东西,也有不少变化的地方。最容易看到的变化就是包名的变化了,由 uk.ltd.getahead 变成了 org.directwebremoting 。         换上了新的配置      < servlet >          < servlet-name > dwr-invoker </ servlet-name >          < servlet-class > org.directwebremoting.servlet.DwrServlet </ ...

[more..]

Jun 21
首先感谢JScud提供的好文章。《 使用FreeMarker生成Html静态文件(实例) 》       在我们的项目中也用到了Freemarker生成静态文件。不过这里我要说的是编码的问题。我们的项目使用的都是UTF-8编码,我直接使用 飞云小侠 提供的方法生成的文件在UTF-8编码下察看是乱码,而GBK正常(后来发现因为我用的中文操作系统所以用GBK查看正常)。       当然我把Freemarker的配置都改成了UTF-8,我的模版文件也是UTF-8编码的。下面是原来的代码      public   void  setTemplatePath(Resource templatePath) {          this .templatePath  =  templatePath;...

[more..]