ct protect -r -chmod 775 directory-or-file-name #Set directory/file/element protection.
posted @
2007-11-06 12:07 jht 閱讀(563) |
評論 (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 閱讀(2195) |
評論 (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 閱讀(296) |
評論 (1) |
編輯 收藏
AnyEdit??是一個挺好用的工具,在eclipse工具欄上加了幾個常用的工具按鈕,比如全部保存。
Work Set導入導出的功能也挺有用。
AnyEdit還有自動刪除行末空格的功能,支持tab和空格的相互轉換,支持在文本編輯狀態下高亮顯示空格。
除此之外打開光標下所在類定義或者是文件的功能也非常實用。
順便說一下,這個插件的作者還開發了不少有用的插件,可以從下面的鏈接里找到更詳細的信息
地址:?http://andrei.gmxhome.de/eclipse.html
posted @
2007-09-29 10:20 jht 閱讀(2190) |
評論 (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 閱讀(1312) |
評論 (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 閱讀(462) |
評論 (1) |
編輯 收藏
Groovy Eclipse Plugin 允許你編輯編譯允許groovy腳本和類。

注意該插件正在不斷開發中,你可以查看該插件開發的最近進展:
issues and bugs- 在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 Folder 從bin?改為 bin-groovy
- 點擊?OK, OK
posted @
2007-09-23 11:19 jht 閱讀(4101) |
評論 (2) |
編輯 收藏
摘要: 使用DWR做一個demo的時候,總是報出 JS Alert: Max depth exceeded when dereferencing ...
function
?update()?
{?
//
...
閱讀全文
posted @
2007-08-12 17:54 jht 閱讀(4217) |
評論 (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 閱讀(3563) |
評論 (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中實現文件上傳
posted @
2007-07-19 21:57 jht 閱讀(17168) |
評論 (11) |
編輯 收藏