MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

1,网上资源
http://groups.google.com.hk/group/grailsunion
http://grails.group.javaeye.com/

2,grails知名应用
 grailsflow
 grailsblog
http://www.grails.org/OpenSource+Projects
   http://code.google.com/p/grailsblog http://www.grailsblog.com
 http://code.google.com/p/grails-domain-uml/
http://code.google.com/p/grails-petstore
http://code.google.com/p/ket-framework/
http://code.google.com/p/grailsmda
http://code.google.com/p/6footplus/
http://code.google.com/p/grum/
http://code.google.com/p/groovyblogs
http://code.google.com/p/simpejob
http://code.google.com/p/biz-portal
http://code.google.com/p/grailsportal
http://svn.codehaus.org/grails/trunk/grails-samples/grails.org/
http://www.grailsdeveloper.com/blog/2008/09/a-lot-of-grails-sample-applications-grails-open-source-projects/

3,工具
  grails文档里说没有自带功能测试,但支持Canoo WebTest

4,网站
  http://www.grailsjobs.com/

4,好文章
  ibm网站有一系列Mastering Grails文章,非常棒。主题有 Testing your Grails application, Grails in the enterprise,Asynchronous Grails with JSON and Ajax等十来个。
  http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=mastering+grails
  http://www.ibm.com/developerworks/java/library/j-grails10148/index.html
 
  SiteMesh学习入门

GRAILS对于我这样的所谓老Java程序员来说,上手还是挺容易的,所谓最难掌握的闭包概念,我认为可以简单的认为是以前的匿名类+委托(当然 还有很多其他的好处)。GRAILS给控制器划分了一个Service层,在业务逻辑重用上,比RAILS做的更好。GRAILS相对没有太多的单复数规 约,相对RAILS的“约定”要简单很多。GRAILS目前没有RAILS那么强大的路由功能,不过反而可以带来的相对简单。

言归正传,其实我这里不是准备比较两个框架的优劣,而是想分享一下GRAILS多对多查询的一些经验。关于GRAILS本身还有GROOVY,我建议大家可以看看这里

GRAILS使用Hibernate作为ORM的基础。方便的同时也带来一些复杂,比如多对多查询。假设我有两个领域模型(其实就是rails里面的model,不过Java的东西嘛,总是比较学术化)

class Product {
static hasMany=[scenario:Scenario]
static belongsTo=Scenario
}
class Scenario{
static hasMany=[product:Product
]
}

如果我要查询Product中,所属scenario在scenario表中的id为1,可以通过如下的方法查询:

def scenario=Scenario.get(1)
return scenario? Product.findAll("from Product p where :scenario in elements(p.scenario)",[scenario:scenario]):[]
来源:http://www.leesoft.com.cn/2009/04/12/grails%E5%A4%9A%E5%AF%B9%E5%A4%9A%E7%9A%84%E6%9F%A5%E8%AF%A2%E6%9E%84%E9%80%A0/

http://rainboyan.com/post/use_groovy_tables_to_doc.html
可以通过Scriptom(现在还是beta版)嵌入vbs、js脚本(包括使用WSH,FSO)或者调用InternetExplorer、Media Player、Word和Excel等windows组件

Groller项目启动http://rainboyan.com/post/groller_was_launched.html
http://code.google.com/p/rainboyan/source/browse/groller

http://www.blogjava.net/emu/archive/2005/05/18/4784.html里面有讲到8皇后

posted @ 2009-03-18 01:53 leekiang 阅读(1575) | 评论 (0)编辑 收藏

File.separatorChar 返回一个字符,表示当前系统默认的文件名分隔符,在Windows中为"\",unix中为"/"
File.separator 与前者相同,但将分隔符作为字符串类型返回。
pathSeparatorChar 返回一个字符,表示当前系统默认的路径名分隔符,在Windows中为";",unix中为":"
File.pathSeparator 与前者相同,但将分隔符作为字符串类型返回。

posted @ 2009-03-17 16:32 leekiang 阅读(241) | 评论 (0)编辑 收藏

1,以下写法看不到时分秒。必须加引号才能看见。
<input type="text" name="stime" value=2009-02-12 12:43:31 />

2,

posted @ 2009-03-13 19:54 leekiang 阅读(203) | 评论 (0)编辑 收藏

1,使用jdk1.3版本的json-lib.jar时依赖的包(不一定准确,只是作个记录)
commons-beanutils.jar;//必须是1.7以上
commons-collection.jar;//必须3.1以上
ezmorph.jar;

posted @ 2009-03-11 19:59 leekiang 阅读(1328) | 评论 (0)编辑 收藏

1,这个控件没有自带判断日期值是否变化的函数,所以自己写了几行代码:
           var tempdatevalue='';
            function beforedatechange(dp){
            tempdatevalue=this.value;
            }
            function afterdatechange(dp){
            if(tempdatevalue!=this.value)
             {
             window.document.location.href="test.do?do=test&date="+this.value;
             }
            }
<input type="text" id="date" name="date" value="${date}"
                            onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd',onpicking:beforedatechange,onpicked:afterdatechange})" class="Wdate" />

2,IE中 无法打开internet站点 。。。。。已终止操作
<base target="_self" />
在<script/>中添加属性defer="defer";

posted @ 2009-03-11 13:58 leekiang 阅读(399) | 评论 (0)编辑 收藏

1,
Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。市场上 的大部分Web服务器,包括iPlanet、IIS和Apache,都支持HTTP Keep-Alive。对于提供静态内容的网站来说,这个功能通常很有用。但是,对于负担较重的网站来说,这里存在另外一个问题:虽然为客户保留打开的连 接有一定的好处,但它同样影响了性能,因为在处理暂停期间,本来可以释放的资源仍旧被占用。当Web服务器和应用服务器在同一台机器上运行时,Keep- Alive功能对资源利用的影响尤其突出。 此功能为HTTP 1.1预设的功能,HTTP 1.0加上Keep-Alive header也可以提供HTTP的持续作用功能。

posted @ 2009-03-11 03:29 leekiang 阅读(401) | 评论 (0)编辑 收藏

1,快捷键
  代码自动完成:Ctrl+反斜线



2,设置
  1)如果觉得NetBeans缺省的工具栏按钮太大,可以右键点击工具栏,从下拉菜单中选择Small Toolbar Icons
还可以选择"内存",会在工具栏显示内存占用情况。
  2)设置字体:
Tools->Options->Fonts & Colors,在左边的类别Category下选择缺省(Default),再选择字体,然后保存。(一定要选一个Category,因为刚进来时默认的类别是"空白",会导致换了字体也不会生效)。可能中文会乱码,所以还要修改Comment,String这两个类别。
我的字体设置
languages:all languages
Category:Default   Font:Courier New 13
Category:Comment   Font:Dialog 12
Category:String    Font:Dialog 12
  3)控制台出现乱码
在Netbeans的安装目录下的etc目录下有一个netbeans.conf,netbeans_default_options引号内加上"-J-Dfile.encoding=UTF-8" 就可以了! 其它比如字体大小也可以在这里调整.如: --font-size:12就可以了!
-J-Duser.language=en -J-Duser.country=US 英文界面启动
  4)erb文件
# coding: utf-8

在"项目"窗口中显示物理结构(默认是逻辑结构):
tools->Miscellaneous(其他)->ruby标签页->取消"显示逻辑项目视图",然后重启。

3,
maven风格的项目结构 http://www.javaeye.com/topic/274136?page=5

4,与eclipse共享工程
http://tech.ddvip.com/2008-12/122916148599857.html
http://tech.ddvip.com/2008-12/122880588198603.html

5,有人说在linux下这样设置一下界面比较好看:
在netbeans 在安装目录下找到 etc/netbeans.conf 然后在netbeans_default_options 添加参数
-J-Dswing.aatext=true --locale en:US
  来源:http://www.blogjava.net/gml520/archive/2010/04/16/318507.html

posted @ 2009-02-14 01:17 leekiang 阅读(279) | 评论 (0)编辑 收藏

1,只要有jar包就行,不需要在web.xml里定义tld。weblogic8不支持1.1
   1.0引入
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
   1.1引入
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

2,<c:choose>
 <c:when test="${role!='admin'}"></c:when>
 <c:otherwise></c:otherwise>
  </c:choose>

3,格式化日期
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
<fmt:formatDate value="${obj.jhdate}" type="both" pattern="yyyy-MM-dd"/>
说明见http://freeman983.javaeye.com/blog/96900

4,遍历
 <c:forEach var="dept" items="${list}">
        <c:out value="${dept.deptid}"/>
 </c:forEach>
 说明

5,<c:out value="${sessionScope.user.name}"/>
 很详细,有续一
6,数组
<c:forEach items="${sessionScope.department_array}" var="department" varStatus="status">
  department: ${department}_${sessionScope.name_array[status.index]}
</c:forEach>

7, jstl没有if/else,用如下的代替,也可以用<c:choose>
<c:if test="1==1"></c:if>
<c:if test="1!=1"></c:if>

8,if /else if/else用如下的写法
<c:choose>
<c:when test="${逻辑判断}"> </c:when>
<c:when test="${逻辑判断}"> </c:when>
<c:otherwise>
</c:otherwise>
<c:choose>
9,<c:out value="${arr}" escapeXml="false">
如果arr的值里带单引号等,则必须加上属性escapeXml="false",否则会出现&XX;之类的东西

posted @ 2009-02-09 20:23 leekiang 阅读(686) | 评论 (0)编辑 收藏

有一篇好文章:掀起J2ee集群的盖头
作者的观点:最好不要使用Session复制的功能,因为这个功能对性能有很大影响,但却不能完全避免错误。这个观点被很多开发人员所接受。包括一些银行的项目和政府的项目

作者博客里还有一些SSO的好文章,如:跨domain的SSO

集群和分布式的区别,其实从字面就能看出来,一个是集,一个是分

posted @ 2009-02-06 01:39 leekiang 阅读(170) | 评论 (0)编辑 收藏

1,weblogic8.1默认是不能运行在jdk5和jdk6上的,原因是weblogic8的mbean为1.0版本,而jdk5和jdk6自带的mbean版本要高(为1.1?)
 
  可以在环境变量里配置一个参数,设置mbean=1.0,然后weblogic8.1就能运行在jdk5和jdk6上了,但这样据说会产生其他问题。参见
 
2,如何分析MAT里那个leak饼图?
  那个饼图分为好几块,除了Remainder外,其他好几块的名字都是以Problem Suspect开始的,看样子内存泄漏不可能发生在Remainder

3,有人如果98%的时间是用于GC且可用的 Heap size 不足2%,才会产生内存溢出?

4,如何在jdk6配置内存溢出时是否产生dump文件
  可以在jdk6的jconsole的MBean的com.sun.management的HotSpotDiagnostic MBeanHotSpotDiagnostic MBean的第3个调用里,
  设置p0为HeapDumpOnOutOfMemoryError,p1为true,然后点击setVMOption按钮。
   则内存溢出时会自动创建一个java_pid<pid>.hprof的堆dump(转储)文件,默认存放工作空间下(例如tomcat的bin目录)
   
   先把tomcat的内存设置得很小,再跑应用,后台很快就报以下错误:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid5736.hprof ...
Heap dump file created [87840650 bytes in 4.488 secs]
2009-2-4 19:17:59 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
严重: Caught exception (java.lang.OutOfMemoryError: Java heap space) executing org.apache.tomcat.util.net.TcpWorkerThread@a77785, terminating thread
2009-2-4 19:18:02 org.apache.tomcat.util.net.TcpWorkerThread runIt
严重: Unexpected error
java.lang.OutOfMemoryError: Java heap space
2009-2-4 19:18:04 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
严重: Caught exception (java.lang.OutOfMemoryError: Java heap space) executing org.apache.tomcat.util.net.TcpWorkerThread@a77785, terminating thread
Exception in thread "DefaultQuartzScheduler_QuartzSchedulerThread" java.lang.OutOfMemoryError: Java heap space
2009-2-4 19:18:05 org.apache.coyote.http11.Http11Processor process
严重: Error processing request
java.lang.OutOfMemoryError: Java heap space
2009-2-4 19:18:13 org.apache.coyote.http11.Http11Processor process
严重: Error finishing response
java.lang.OutOfMemoryError: Java heap space
Hibernate: select......这里它抽空还执行了一条sql
.........略.............................
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "Timer-0" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
.........略.............................

 在输出错误日志的过程中,不知何故还会在eclipse的debug里不停的调用java.util.concurrent.ThreadPoolExecutor

5,内存溢出时自动生成的dump文件和未溢出时自己用jmap导出的dump文件的leak饼图有很大区别,我感觉前者的分析要有用一些。具体区别:
  (1)后者有org.apache.catalina.loader.WebappClassLoader和ZipFileIndex,而前者没有
  (2)两者都有org.hibernate.impl.SessionFactoryImpl
  (3)前者有如下的关键信息:

8,980 instances of "java.lang.Class", loaded by "<system class loader>" occupy 8,208,768 (12.43%) bytes.

Biggest instances:

  • class org.springframework.beans.CachedIntrospectionResults @ 0x735f808 - 2,218,536 (3.36%) bytes. These instances are referenced from one instance of "java.lang.Thread", loaded by "<system class loader>"


  • 6,一个疑问,为何无人访问时Tomcat的内存图是锯齿形的

    7,我配置了-XX:+HeapDumpOnCtrlBreak,用的jdk1.5.0_14
    结果Ctrl+Break 时报
    Unable to create java_pid3072.hprof.m27.10/05/07M20: No such file or directory
    这里 找到了原因,是jdk的一个bug(bug id:6454676),This problem has been fixed in 1.4.2_18 and 5.0u17

    8,前两个1g的顶峰处,是tomcat自己进行的gc。后面的几个是我自己手动gc的

    heap.jpg

    9,

    7,002 instances of "java.lang.Class", loaded by "<system class loader>" occupy 12,359,912 (11.20%) bytes.

    Biggest instances:

  • class sun.rmi.server.UnicastServerRef @ 0x51b16a48 - 4,447,432 (4.03%) bytes.
  • class sun.rmi.transport.ObjectTable @ 0x51b40330 - 3,491,160 (3.16%) bytes
  • 问题

    posted @ 2009-02-04 19:47 leekiang 阅读(12288) | 评论 (1)编辑 收藏

    仅列出标题
    共54页: First 上一页 25 26 27 28 29 30 31 32 33 下一页 Last