2010年3月30日 星期二

SSH

////////////////////////////////////////////////////
1. 連線後會先到 user/.ssh 下去找 authorize_keys
2. 如果和 client 相同,可以自動登入, no password-less
3, 否則要 key password

其它:
1. .ssh 下可以產生 pub key, private key 檔案

Reference:
http://users.telenet.be/mydotcom/howto/linux/netmon.htm

------------------------------------------------
Connect with X11
> ssh -X user@IP

NameServer

1. 在 /etc/resolv.con 有設定檔, 如此當你作連線時可以使用

Reference:
http://dns-learning.twnic.net.tw/bind/intro4.html
此檔案可用來設定 DNS 用戶端要求名稱解析時,所定義的各項內容。我們分別來看一個完整的resolv.conf的檔案:
domain twnic.com.tw
nameserver 192.168.10.1
nameserver 192.168.2.5
search twnic.com.tw twnic.net.tw

2010年3月23日 星期二

Cannot make a static reference to the non-static method

描述: 當自己建立一個物件從另一個物件時, 但是自己卻呼叫到類別, 應該要從Instance 去呼叫


reference: http://hi.baidu.com/xjll1314/blog/item/9d813f3957faa6e115cecb13.html

Tomcat 啟動

Tomcat 的啟動用不同的人, 會有不同選項 , 像 root start 和 user start, 不同
(自己不太熟 tomcat)


Reference: 有心在看
http://docs.huihoo.com/apache/tomcat/heavyz/01-startup.html
http://tomcat.apache.org/tomcat-3.3-doc/tomcat-ug.html#directory_structure

Read Binary File

1. 使用 BufferedInputStream

public static String getBinayFile() throws IOException {

String ubjFilePath = System.getProperty("java.io.tmpdir") + File.separator + "test";
String address = "http://XXX.binayr";
byte[] data = new byte[1];

// Connect the network
URL url = new URL(address);
URLConnection conn = url.openConnection();

BufferedInputStream bufferedInputStream =
new BufferedInputStream( conn.getInputStream());

// Setting outfile
BufferedOutputStream bufferedOutputStream =
new BufferedOutputStream((new FileOutputStream(ubjFilePath)));

// Write file
while(bufferedInputStream.read(data) != -1) {
bufferedOutputStream.write(data);
}

//Output the write
bufferedOutputStream.flush();

// Close the stream
bufferedInputStream.close();
bufferedOutputStream.close();

return FilePath;
}


Reference:
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/BufferedInOutStream.htm
http://java.sun.com/javase/6/docs/api/java/io/package-summary.html
http://my.so-net.net.tw/idealist/Java/IO.html

2010年3月22日 星期一

JSP 轉成 servlet 的頁面

1. JSP 會經過 Tomcat 轉成 servlet 後儲在 /tomcat/work/Catalina/localhost/yourProject 下

JAVA Serializable

介紹序列化:
當你儲存你目前物件的資訊, 在 J2SE 中可用 java.io.Serializable (序列化)介面將物件寫到檔案中,只後可再反序列化, 可重建此物件.

原理:
序列化會將類別名與欄位寫到檔案中, 而寫的順序是從父類別寫起, 建立一個序列樹.
解序列化(deserializable)會檢查 class name, version UID, member, 只有三個條件相同才會做解序動作.

應用地方:
可用在 Web 上, 例如: Sever 先幫使用者建立資訊, 在傳給 Client 作後續的工作.


使用方法:
1. It is a interface, so your object need implement it .
2. 如果有些重要或敏感資訊, 或沒實作 serializable 成員, 若要被乎略, 可用 transient (暫短的) 在權限與物件前. 如 private transientint a
3. 如果物件只有些微變化, 可用設定 serailVersionUID, 其型態為 private static final long serialVersionUID = -8985932517290729708L; 而 jdk command 提供 serialver 方式建立一個唯一的 UID (當然你也可以自己建), 下 serialver -classpath your_tar -show , 跳出GUI 視窗, 輸入你的物件如, Test.Andy.TestSerial. 運作方式只要兩端有設定相同的 UID 則解序列化將他們視為相同. [2]



錯誤訊息與解決:
1. java.io.NotSerializableExceptionorg.apache.activemq.ActiveMQConnection. solution: add the transient modify

2. java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
原因: 這是 object input stream 讀取到不正確的資料型態產生. 以我的例子說, 因為我是用 Scanner 字元方式去下載一個 serial object, 而 serial object 卻是以位元方式儲存, 導致讀取時產生不正型態.
解決: 使用 BufferedInputStream 讀取位元資料

3. serivalUID 不相同. 因為自己在某個類別設定了 UID, 但卻沒有更改到所有JAR 檔, 因此產生. 解決重包 JAR 檔, 並將 UID 拿掉.






Reference:
http://funkie921.blogspot.com/2009/04/java-keyword-trancient.html
[2]http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/serialver.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/ObjectInputStream.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/ObjectOutputStream.html
java.IO 中文教學 http://my.so-net.net.tw/idealist/Java/IO.html

Import 討論

1. import 可有兩種方式
a. Using the jar file putting in the WEB-INF/lib/ directory
b. Using the .class putting in the WEB-INF/classes/

2. Then you will restart the tomcat to setting the classpath .


[reference about the import discuss]
http://www.javaworld.com.tw/jute/post/view?bid=6&id=47626&sty=3
若要將自己寫的class放在web應用程式的classes目錄下
則該class必須設定package
否則在jsp中 不論是直接new or 用
都會發生不認得該class的錯誤

第二點:
classes目錄以及其子目錄的class Tomcat並不會"自動幫你import"
但是tomcat會自動幫你將web應用程式下的classes目錄"自動加入classpath"
"自動幫你import" 和 "自動加入classpath" 是不同的
所以 若你在jsp中要使用你自訂在classes目錄下的class 但是你並沒有使用<%@ page import="..." %>的話
則 你在使用該class時 就必須指定該class的全名

2010年3月15日 星期一

Hadoop 帳號 create

Hadoop create 帳號
1. 若本機有 hadoop Client, 要連線到某台 hadoop server, 則要修改 core.site

2. 用 hadoop client 建一個自己的目錄.
## hadoop fs -mkdir /user/Andy/

3. 此目錄可以改成 任以 user 使用
hadoop fs -chown


注:
目前連線不需要設定 passwd

2010年3月1日 星期一

ShellScript

1. xargs

2. variable
variable="XXX"

3. out >, /dev/null

4. << END
input1
END

5.