從制造到創造
軟件工程師成長之路 |
當前配置XP SP1,eclipse3.0.1
現在假設我的eclipse安裝目錄是D:\eclipse,待安裝插件目錄是D:\plug-in ,我將要安裝LanguagePackFeature(語言包)、emf-sdo-xsd-SDK、GEF-SDK、Lomboz這四個插件。
先把這四個插件程序全部放在D:\plug-in目錄里,分別解壓。如Lomboz3.0.1.zip解壓成Lomboz3.0.1目錄,這個目錄包含一個plugins目錄,要先在Lomboz3.0.1目錄中新建一個子目錄eclipse,然后把plugins目錄移動到剛建立的eclipse目錄中,即目錄結構要是這樣的:D:\plug-in\Lomboz3.0.1\eclipse\plugins
Eclipse 將會到指定的目錄下去查找 eclipse\features 目錄和eclipse\plugins 目錄,看是否有合法的功能部件和(或)插件。也就是說,目標目錄必須包含一個 \eclipse 目錄。如果找到,附加的功能部件和插件在運行期配置是將是可用的,如果鏈接文件是在工作區創建之后添加的,附加的功能部件和插件會作為新的配置變更來處理。
其它壓縮文件解壓后若已經包含eclipse\plugins目錄,則不需要建立eclipse目錄。
然后在 eclipse安裝目錄D:\eclipse目錄中建立一個子目錄links,在links目錄中建立一個link文件,比如 LanguagePackFeature.link,改文件內容為 path=D:/plug-in/LanguagePackFeature 即這個link文件要對應一個剛解壓后的插件目錄。
說明:
1. 插件可以分別安裝在多個自定義的目錄中。
2. 一個自定義目錄可以安裝多個插件。
3. link文件的文件名及擴展名可以取任意名稱,比如ddd.txt,myplugin都可以。
4. link文件中path=插件目錄的path路徑分隔要用\\或是/
5. 在links目錄也可以有多個link文件,每個link文件中的path參數都將生效。
6. 插件目錄可以使用相對路徑。
7. 可以在links目錄中建立一個子目錄,轉移暫時不用的插件到此子目錄中,加快eclipse啟動。
8. 如果安裝后看不到插件,把eclipse 目錄下的configuration目錄刪除,重啟即可。
注意:關于用links方式安裝Lomboz插件,在編輯EJB時可能會產生問題,這個將會在有關Lomboz插件的文章中探討。
1、Anatomy of an Android Application(中文翻譯)1、安裝Weblogic:
使用的EJB服務是BEA的weblogic8.1,下載BEA的weblogic8.1,然后安裝。安裝步驟省略。
2、定義EJB遠程接口(Remote Interface):
任何一個EJB都是通過Remote Interface被調用,EJB開發者首先要在Remote Interface中定義這個EJB可以被外界調用的所有方法。執行Remote Interface的類由EJB生成工具生成。
以下是HelloBean的Remote Inteface程序:
package com.leo;
import java.rmi.RemoteException;
import java.rmi.Remote;
import javax.ejb.*;
public interface Hello extends EJBObject, Remote {
//this method just get "Hello EJB" from HelloEJB.
public String getHello() throws RemoteException;
}
3、定義Home Interface
EJB容器通過EJB的Home Interface來創建EJB實例,和Remote Interface一樣,執行Home Interface的類由EJB生成工具生成。以下是HelloEJB 的Home Interface程序:
package com.leo;
import javax.ejb.*;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.*;
/**
* This interface is extremely simple it declares only
* one create method.
*/
public interface HelloHome extends EJBHome {
public Hello create() throws CreateException,
RemoteException;
}
4、寫EJB類
在EJB類中,編程者必須給出在Remote Interface中定義的遠程方法的具體實現。EJB類中還包括一些 EJB規范中定義的必須實現的方法,這些方法都有比較統一的實現模版,編程者只需花費精力在具體業務方法的實現上。
以下是HelloEJB的代碼:
package com.leo;
import javax.ejb.*;
public class HelloEJB implements SessionBean{
public void ejbCreate(){}
public void ejbRemove(){}
public void ejbActivate(){}
public void ejbPassivate(){}
public void setSessionContext(SessionContext ctx){}
public String getHello() {
return new String("Hello,EJB");
}
}
5、創建ejb-jar.xml文件
ejb-jar.xml文件是EJB的部署描述文件,包含EJB的各種配置信息,如是有狀態Bean(Stateful Bean) 還是無狀態Bean(Stateless Bean),交易類型等。ejb-jar.xml文件的詳細信息請參閱EJB規范。以下是HelloBean的配置文件:
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems Inc.//DTD Enterprise JavaBeans 1.2//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_2.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home>com.leo.HelloHome</home>
<remote>com.leo.Hello</remote>
<ejb-class>com.leo.HelloEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
6、創建weblogic-ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">
<weblogic-ejb-jar>
<description><![CDATA[Generated by XDoclet]]></description>
<weblogic-enterprise-bean>
<ejb-name>Hello</ejb-name>
<stateless-session-descriptor>
</stateless-session-descriptor>
<reference-descriptor>
</reference-descriptor>
<jndi-name>Hello</jndi-name>
<local-jndi-name>HelloLocal</local-jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
7、部署和編譯
EJB的jar包是由class文件和描述文件組成,對于weblogic服務器來說還要增加weblogic-ejb-jar.xml描述文件。編譯Java源文并將編譯后class和ejb-jar.xml、weblogic-ejb-jar.xml打包到Hello.jar
7.1:創建目錄build。
7.2:在build下新建目錄META-INF,把文件ejb-jar.xml、weblogic-ejb-jar.xml拷到META-INF下。
7.3:把編譯好的class文件拷到build目錄下(此時為com/leo/Hello.class,HelloEJB.class,HelloHome.class)。
7.4:打包成jar文件: jar -cvf hello.jar *.* 。
7.5:再將hello.jar文件部署到weblogic服務器中。
8、寫客戶端調用程序
您可以從Java Client,JSP,Servlet或別的EJB調用HelloBean。
調用EJB有以下幾個步驟:
通過JNDI(Java Naming Directory Interface)得到EJB Home Interface
通過EJB Home Interface 創建EJB對象,并得到其Remote Interface
通過Remote Interface調用EJB方法
以下是一個從Java Client中調用HelloBean的例子:
package ejb.hello;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Hashtable;
import javax.ejb.*;
import java.rmi.RmoteException;
/**
* @author Copyright (c) 2000 by Apusic, Inc. All Rights Reserved.
*/
public class HelloClient {
public static void main(String args[]){
String url = "rmi://localhost:7100";
Context initCtx = null;
HelloHome hellohome = null;
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.apusic.jndi.InitialContextFactory");
env.put(Context.PROVIDER_URL, url);
initCtx = new InitialContext(env);
} catch(Exception e){
System.out.println("Cannot get initial context: " + e.getMessage());
System.exit(1);
}
try {
Object obj=ctx.lookup("Hello");
HelloHome home=(HelloHome)PortableRemoteObject.narrow(obj,HelloHome.class);
Hello hello = hellohome.create();
String s = hello.getHello();
System.out.println(s);
}catch(Exception e){
System.out.println(e.getMessage());
System.exit(1);
}
}
}
運行HelloClient,可得到以下輸出:
Hello EJB
大多數人學英語只知整天死背詞匯表,或昏昏欲睡地聽老師絮叨語法。盡管老師常會夸張運用臉部肌肉演示發音,然而僅僅一天之后,所學一切就開始在你腦海中逐漸褪色。這便導致了一個無奈的結果:就算你會讀會寫,可當你真正面對一個外國人進行電話會議或演講陳述的實戰練習時,你還是傻眼了。
現在EF中國區總裁Peter Winn告訴你:只需掌握了五個基本秘訣,即可輕松掌握單詞、詞組,真正實現“無痛”學英語。
1.確定目標,適時褒獎。大多數人把學英語的目的簡單地定義為“對未來有益”,其實精準的目標設定更有助于集中精力達成最終結果,其關鍵在于確定成績測試方式及時間范圍。你需要對自身英語水平做出客觀評估,并制定漸進提高的詳細步驟。須謹記:衡量學習成果,定要始終使用同一衡量標準,這樣才能清楚看見進步空間。另外,設立長遠目標倒也無妨,如同“說一口流利的、不帶絲毫口音的英語”等等,就是不少人正在使用著的目標。不過,以階段性目標作為發端容易敲開成功之門,“我希望能與同事進行基本商務對話”,就是一個不錯的例子。最后,千萬不要忘記,哪怕你獲得最微小的進步,也應適時獎勵自己,如此可以保證長期的學習激情。
2.快樂學習,輕松記憶。學習英語,可以脫離教室。研究表明,當人們處于快樂的心境下,記憶力更突出、自信心更富裕。把英語學習同興趣愛好結合起來。喜歡打網球,就參加英語交流的網球俱樂部;喜歡烹飪,就報名采用英語教學的烹飪培訓班;喜歡唱歌,不妨試試在卡拉OK演唱英語歌曲……用眼睛盯著屏幕,用耳朵捕捉一遍遍重復的歌詞,輔以熟悉流暢的旋律,這一切讓單詞記憶變得越發簡單。可能最初有點難,但是這會強迫你使用英語。尤其是你正做著自己熱愛的事情,學習英語的痛苦也就一掃而光了。
3. 融入環境,異化自己。建立英語學習自信心的關鍵無非:實踐實踐再實踐!缺少實踐機會和語言環境是目前中國學生面臨的最大挑戰。當年我學習中文的時候,我和身邊朋友定下默契,盡量強迫自己用中文互相交流,即便中文不是我們其中任何一個人的母語。我們大家約定不到萬不得已之時,必須一直說英語,甚至對違反默認規則的人實行懲罰措施!雖然剛開始可能會犯很多錯誤,但隨著對英語對話模式的逐漸熟悉,所犯錯誤也將越來越少。令自己處于一個天然外語環境同樣重要,這個環境可以是辦公室、俱樂部、健身館、酒吧、餐廳,諸如此類的場所越多越好。盡量挑選“主動”語言環境,比如俱樂部或派對,在那里你會更有說話的欲望。而像電影院之類的“被動”語言環境,收效往往并不出色。不要害怕犯錯——走出門去,找外國人交流。
4. 尋求幫助,制訂規劃。學習英語的一個關鍵步驟,是接受高質量學習指導或參加高端語言培訓項目。據我了解,很多學生寧愿選擇自學,以及與外國友人實戰練習。最終,這些學生的確能夠建立充分信心,敢于流利表達自己,但詞匯量卻相當有限。這就等于缺少了最基本的磚塊,無法建起堅實的語言基礎。我認識一個女孩,她說話速度很快,卻從不注意用詞,因此總是表達不夠清晰。另外一個學生經常和外國友人一起泡吧,于是連他自己都沒有意識到,他的口頭英語里夾雜許多酒吧用語,甚至包括hey dude、yeah man 、that rocks!這些粗俗的臟話,就好像他長年在酒吧工作一樣。扮演不同的社會角色,必然有完全迥異的英語表達方式,你能想象與國外客戶高層管理人員開電話會議時突然冒出hey dude、that rocks這些詞句嗎?而這些區別只能由一個專業老師指導。一個稱職老師會詳細分析學生的優勢和不足,找到需要輔導的不足所在,強化本身具備的優勢,由此制定一個切實可行的學習規劃。 學習語言不僅需要流利,更加需要得體!
5. 承諾自己,態度積極。從來沒有確切證據表明,某種特質的某些人更易于或更難于熟練掌握一門語言。相信我,任何人無論年齡、基礎,只要具備正確學習態度,都足以學好英語。那些失敗過的學生,并不是因為他們不夠聰明,而是因為他們沒有把學英語當作一種對自己的承諾。你越早制定明確目標和學習計劃,就能越快克服重重障礙。當然,最初要讓舌頭適應陌生的聲音和句式,確實有些困難。這并不該讓你退卻。失敗原因永遠只有一個,那就是你自己向這些困難投降了。
遵循這5個簡單步驟,你很快會發現詞匯量和造句能力迅速提高,而對英語學習信心逐漸增強,與老外對話時逐漸懂得鎮定心思。曾經有位老師教育我要“操控”語言,而不是讓語言“操控”你。 不知不覺,你會愛上英語,學習也不再感覺痛苦。
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
27 | 28 | 29 | 30 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 |