随笔-46  评论-64  文章-2  trackbacks-0
 
ct protect -r -chmod 775 directory-or-file-name #Set directory/file/element protection.
posted @ 2007-11-06 12:07 jht 阅读(558) | 评论 (0)编辑 收藏

问题,向脚步传递参数的时候如何取得一个一个的option

办法一: 就是一个一个读 用$#取得变量个数,然后读$1 $2 $3,不是很方便

查了一下命令手册:发现用getopts命令更方便,man page不是很好懂

直接看 Example.sh:

# !/ bin / sh

while  getopts 'a:b:c' myoption
    
do
    
case  $myoption  in
        a) ls 
- al
        ;;    
        b) ls 
- l $OPTARG    
        ;;
        c) ls 
- l    
    esac
    done


用法和效果:
Example.sh -a stringa
就会执行 ls -al 这个命令, stringa 其实不起左右,但是这个参数还是要的

Example.sh -b -lrt
那就会执行 ls -l -lrt 传进去的参数起作用了

当然也可以这样
Example.sh -a 123 -b -lrt z, 这个作用就是两个命令都执行了


可以用变量保存这些OPTARG参数,在while循环外面接着使用

posted @ 2007-10-30 14:46 jht 阅读(2192) | 评论 (0)编辑 收藏
Hibernate 提供了一个hibernate.properties的模板,稍加修改就能得到自己想要的配置效果

下面这一段XML配置文件中关于数据库连接方式的配置,可以在hibernate.properties中完成
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
<hibernate-configuration>
    
<session-factory name="sf">
    
<!-- 
        <property name="hibernate.connection.driver_class">
            org.hsqldb.jdbcDriver
        </property>
        <property name="hibernate.connection.url">
            jdbc:hsqldb:hsql://localhost/HibernateMapping
        </property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.dialect">
            org.hibernate.dialect.HSQLDialect
        </property>
     
-->
        
<mapping package="cn.heapstack.models" />
        
<mapping class="cn.heapstack.models.User" />
        
<mapping class="cn.heapstack.models.UserInfo" />
    
</session-factory>

    
</hibernate-configuration>
## HypersonicSQL
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
hibernate.dialect org.hibernate.dialect.HSQLDialect
hibernate.connection.driver_class org.hsqldb.jdbcDriver
hibernate.connection.username sa
hibernate.connection.password
hibernate.connection.url jdbc:hsqldb:hsql://localhost/HibernateMapping
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$



代码示例:
Configuration cfg = new AnnotationConfiguration().configure("./hibernate.cfg.xml");
SessionFactory sf 
= cfg.buildSessionFactory();
Session session 
= sf.openSession();
org.hibernate.Transaction tx
= session.beginTransaction();
tx.commit();
session.close();
posted @ 2007-10-26 14:40 jht 阅读(287) | 评论 (1)编辑 收藏

AnyEdit  是一个挺好用的工具,在eclipse工具栏上加了几个常用的工具按钮,比如全部保存。
Work Set导入导出的功能也挺有用。

AnyEdit还有自动删除行末空格的功能,支持tab和空格的相互转换,支持在文本编辑状态下高亮显示空格。

除此之外打开光标下所在类定义或者是文件的功能也非常实用。

顺便说一下,这个插件的作者还开发了不少有用的插件,可以从下面的链接里找到更详细的信息

地址: http://andrei.gmxhome.de/eclipse.html

posted @ 2007-09-29 10:20 jht 阅读(2180) | 评论 (1)编辑 收藏
首先看这一段简单的log4j配置
log4j.logger.cn=debug,stdout
log4j.logger.cn.heapstack
=debug,stdout
log4j.appender.stdout
=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout
=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=%d [%t] %-5p %c line.%L: %m%n
这个配置导致日志文件中输出两行相同的结果

原因是这样的,第二行的logger继承自第一行的logger,两个logger的apperder都是指向stdout
Appender的输出是独立的,所以导致了我们使用如下代码获得logger的时候会输出两行

public static Logger logger = Logger.getLogger(cn.heapstack.demopkg.Main.class);


知道这个原因之后解决办法也就简单了,即我们不需要定义重复的appder,
可以把第二行最后的stdout去掉,或者注释掉第二行,如果输出级别相同的话
posted @ 2007-09-28 09:57 jht 阅读(1302) | 评论 (0)编辑 收藏

Download and some env configure
 1. download gwt version gwt-windows-1.4.60 from http://code.google.com/webtoolkit
 2. unzip gwt-windows-1.4.60.zip file
 3. set system env variable GWT_HOME to the path where you hold your gwt files
 4. add %GWT_HOME% to your env path

Google Code Home > Google Web Toolkit > Getting Started Guide , it's a good place to get start.
You could follow this guide and get a first impression of what GWT can do and how convenient it is.

Usage
projectCreator -eclipse MyProject
ApplicationCreator [-eclipse projectName] [-out dir] [-overwrite] [-ignore] className

 

Eclipse plugin

cypal.studio.for.gwt
 1. download from http://code.google.com/p/cypal-studio/ version: cypal.studio.for.gwt-RC2.zip
 2. install this eclipse plugin (install it by new local site or just copy files, it's up on you )
 
GWT Designer 

 1. download from http://www.instantiations.com/gwtdesigner/index.html
 2. during install you need to choose Eclipse base location and GWT_HOME location
 
 Study how to use this plugin,
Webdemos
http://www.instantiations.com/gwtdesigner/demos.html

GWT desinger document homePage
http://downloads.instantiations.com/DesignerDoc/integration/latest/docs/html/gwt/index.html

Tutorial: Creating a Login application
http://downloads.instantiations.com/DesignerDoc/integration/latest/docs/html/gwt/tutorial/tutorial_login.html
 

posted @ 2007-09-25 15:09 jht 阅读(452) | 评论 (1)编辑 收藏
Groovy Eclipse Plugin 允许你编辑编译允许groovy脚本和类。

注意该插件正在不断开发中,你可以查看该插件开发的最近进展: issues and bugs

Eclipse 版本兼容性

Eclipse 3.0 : 不能工作,因为和3.1Eclipse有依赖关系

Eclipse 3.1 : 该插件的 1.0.1 与之不兼容,但是插件的1.0.0.20070118 版本可以正常工作

Eclipse 3.2 : 兼容

Eclipse 3.3 : 兼容(根据最小化的初始测试)


通过UpdateSite安装

包含最近发布的站点: http://dist.codehaus.org/groovy/distributions/update/

  • 在Eclipse菜单里选择: Help -> Software Updates -> Find and Install -> Search For New Features
  • 点击 New Remote Site
  • 在 Name 字段里填名称 (例如: Groovy)
  • 将上面的URL拷贝到 URL 字段里,然后点击 OK
  • 选中新建Groovy站点然后确定
  • 在 Select the Features to Install 下选中Groovy 的选项(确保你选择了最新的版本)点击 Next
  • 接受,点击 Next
  • 如何默认安装位置可以的话,点击 Finish (然后eclipse开始下载Plugin)
  • 如果你看到plugin为签名的对话框弹出来了,点击 Install or Install All

这将下载并安装Eclipse的Groovy插件.  它需要重启Eclipse来保证插件加载完成。

如果你想尝试最近的开发中的版本,  可以用这个站点: http://dist.codehaus.org/groovy/distributions/updateDev/

创建一个 Groovy 工程

按照如下步骤创建一个基本的Groovy工程:

  • 打开: File -> New -> Project
  • 选择 Java Project 然后点 Next
  • Project Name 字段填上你工程的名字
  • Project Layout 下选择 Create separate source and output folders 然后点击 Finish
  • 在 Package Explorer 下找到刚刚新建的工程,右击, 选择 Groovy -> Add Groovy Nature

到目前为止你有了一个src目录,一个bin-groovy目录,还有几个库文件。还有一个由Eclipse创建的bin目录,但是因为过滤隐藏了。下面的几步是为了让bin-groovy目录成为默认的输出文件夹,并且将它和src文件夹关联,使得调试工具知道从哪找关联的源代码和类。

  • Package Explorer, 右击 "GroovyJava" 工程, 选择: Build Path -> Configure Build Path
  • 使用 Browse 按钮,将 Default Output Folderbin 改为 bin-groovy
  • 点击 OK, OK
posted @ 2007-09-23 11:19 jht 阅读(4069) | 评论 (2)编辑 收藏
     摘要: 使用DWR做一个demo的时候,总是报出 JS Alert: Max depth exceeded when dereferencing ... function  update()  {  // ...  阅读全文
posted @ 2007-08-12 17:54 jht 阅读(4200) | 评论 (5)编辑 收藏

这个问题出现发生的代码如下:

    public String execute() throws Exception {
        
// String path = getText("struts.multipart.saveDir");
        try {
            
int i = getMyDoc().length;

            
for (int j = 0; j < i; j++{
                File save 
= new File("C:/upload/" + getMyDocFileName()[j]);
                FileUtils.copyFile(getMyDoc()[j], save);
            }

        }
 catch (Exception e) {
            
return ActionSupport.ERROR;
        }

        
return ActionSupport.SUCCESS;

    }


这是用Struts2上传多个文件时候的一段代码,错误处理是遇到异常时return 一个ERROR,结果调用这个这个UploadAction报错 No result defined for action .....

应该修改成这样,捕获到异常时return ActionSupport.INPUT ,这样当页面第一次被载入时就不会报错了

posted @ 2007-07-26 17:29 jht 阅读(3555) | 评论 (1)编辑 收藏
这个问题是在使用Struts2想做一个上传文件的页面时候Tomcat报出来的错误,详细信息如下:
2007-7-19 21:34:09 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]
    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:136)
    at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:476)
    at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:486)
    at com.opensymphony.xwork2.inject.ContainerImpl$9.call(ContainerImpl.java:517)
    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:542)
    at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:515)
    at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:697)
    at org.apache.struts2.dispatcher.FilterDispatcher.prepareDispatcherAndWrapRequest(FilterDispatcher.java:330)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:390)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    at java.lang.Thread.run(Thread.java:595)
Caused by: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]
    at org.apache.struts2.config.BeanSelectionProvider$ObjectFactoryDelegateFactory.create(BeanSelectionProvider.java:246)
    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:134)
    ... 22 more

最后Google了不少文章,找到了原因:(缺少了必要的jar包)

Struts2使用开源项目Apache Jakarta Commons FileUpload和内建的FileUploadInterceptor拦截器实现文件上传,所需的jar包如下:

commons-logging-1.1.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.6.jar
xwork-2.0.1.jar
commons-io-1.3.1.jar
commons-fileupload-1.2.jar


参考资料:

在Struts 2中实现文件上传

Struts2文件上传



posted @ 2007-07-19 21:57 jht 阅读(17140) | 评论 (11)编辑 收藏
仅列出标题
共5页: 上一页 1 2 3 4 5 下一页