ref:
http://thought-bytes.blogspot.com/2007/03/how-to-load-balance-tomcat-55-with.html
1. install the following software
jre 1.5 or 1.6, tomcat 5525, eclipse, axis2
and in eclipse preferences set tomcat to web server, set jre env and set axis2's runtime
2. create a java project and add axis2 runtime library to its build library
test ws client sample code:
public class TestSms
{
private static EndpointReference targetEPR = new EndpointReference(
"http://cdl:8080/axis2/services/Version");
public static OMElement getGetLeftElement(){
OMFactory fac=OMAbstractFactory.getOMFactory();
OMNamespace omNs=fac.createOMNamespace("此處填寫WS的命名空間","hw");
OMElement method=fac.createOMElement("WS 方法名",omNs);
OMElement value = fac.createOMElement("參數一", omNs);
value.addChild(fac.createOMText(value, "值一"));
method.addChild(value);
value = fac.createOMElement("參數二", omNs);
value.addChild(fac.createOMText(value, "值2"));
method.addChild(value);
return method;
}
public static void main(String[] args){
try{
Options options=new Options();
options.setTo(targetEPR);
options.setAction("命名空間/WS 方法名");
ServiceClient sender=new ServiceClient();
sender.setOptions(options);
OMElement sayHello=TestSms.getGetLeftElement();
//WSDLConstants.
OMElement result=sender.sendReceive(sayHello);
OMElement elem = result.getFirstElement();
System.out.println(elem.getText());
//System.out.println(result);
}
catch(Exception axisFault){
axisFault.printStackTrace();
}
}
}
Internet Explorer 4.x 及更高版本
最后不要忘了在這里測試一下是否安裝成功: http://www.java.com/zh_CN/download/help/testvm.xml
明天就是2005年最后一天了, 本想休一天假, 只是最近手頭上的項目跟別的公司有關, 脫不了身, 煩燥呀, 準LP又在罵了, 要生存, 沒辦法。
去年底搞了個今年十大目標,看了一下,沒幾個完成了,估計只有30-40%完成了。
整天都在忙,不管是公司的事還是自己的研究,這一年就沒有幾天晚上是12點之前睡的,在上一個公司經常是晚上11點回去睡覺,現在這家公司是回去之后繼續搞,所有的業余愛好都沒有了,買了個DC,也沒怎么用,什么都沒有心情,事情總是在那里等著,視力又下降了,身體感覺不如從前了。記憶力也下降了,前一陣子的事都不記得了,只知道這兩天做了些啥。
雖然又長了一歲,其它到是沒什么長進:
最近要在一個項目中使用java, 本來是用.net開發的, 可是驗收時用戶要求用java平臺,只好進行移植工作了. 一直使用的是.net開發, JAVA只是關注, 沒有深入研究, 等實際應用時才發現自己水平有限, 問題一堆.
把最近碰上的問題做些整理:
使用JAVA平臺的問題:
1. 開發工具太多, 什么Eclipse, jbuilder等,各有不同, 讓人熟悉就花時間了, 本為以為對JB比較熟悉,又有2006版本了, 就用它吧, 可是才兩天, 就發現自己的代碼文件中的中文變為亂碼了, 當然網上有一堆解決方案, 只是心里不爽, 直接不用了, 改為eclipse了, 操作界面不是很熟悉, 與VS.NET IDE還是有不少區別, 只是用多了自然就熟悉了,
又從網上當了一堆插件, 什么tomcat, xml編輯器, 沒有用myeclipse, 雖然支持JSP,以前用過一下, 也不太好用, 其它的就沒找到什么好東西了, 時間也不允許, 至少現在可以調度JAVA代碼了, JSP的調試再說吧.
2. 開始整的時候,發現自己在WEB開發方面熟悉的是VS的ASPX事件模型, 反而不知道如何處理JSP了, 只好使用以前ASP的模式, 使用form提交, 感覺真是太落伍了, 雖然現在有許多AJAX之類的東西, 也支持客戶端事件模型, 實在沒時間研究這些東西了. 先做出來再說.
數據庫連接類使用了以前jive中的幾個類, 支持在xml中配置連接等, 再自己寫了一個類, 從XML中讀取SQL語句, 差不多能用.
3。在網上搜索了一把,未找到在eclipse中對web service支持比較好的plugin,發現版本都比較低,似乎久未更新了,JB下到是有不錯的設計和編譯界面,只是JB其它太爛。
字符集問題:
使用java首先就要碰上一個中文字符的顯示和處理問題, 這些問題總是很煩, 要對request進行編碼才能解決.
既然使用非MS平臺, 數據庫可能就不會用到mssql server了, 使用mysql, 發現要移植以前的數據還是比較容易, 但mysql的驅動實在不好弄, 剛開始使用純JDBC的驅動, 結果發現在中文字符的處理上始終有問題, 只好
網上查原因, 發現jdbc驅動的版本太低, 在判斷中文字符上有問題, 升級驅動程序, 可以插入和顯示了, 但SQL中是中文, 可是進了數據庫就是亂碼, 試了N遍也不行, 只好改為jdbc-odbc.
但接下來在執行batch sql時又報錯了, 說mysql odbc driver 的SQL語法錯, 檢查了半天, SQL也能在mysql中執行的, 就是不能通過JAVA提交執行. 用的是mysql 5.0.X, 支持unicode 的編碼建表. 最后只能采用一個折衷的辦法,自己寫一個批量執行SQL的類,采用“;”分隔多個SQL,在調用時仍然一行一行的執行,郁悶。
最終的字符集解決辦法:
頁面上要設置字符集的輸出格式,如GBK或GB2312,另外,如果使用統一的包含文件定義輸出字符集,還是不行,必須在每個頁面中單獨定義,也可能是我的INCLUDE方式不對;
數據庫連接字符串中也要設置編碼;
在傳遞數據到DB的SQL還要對中文進行編碼;
String key = new String(request.getParameter("txtKey").getBytes("ISO8859_1"));
最后還有一個問題是,如果TOMCAT編譯JSP文件生成的JAVA文件有亂碼,那么在訪問的時候頁面上總是要報錯,什么"delete tokens"之類的,此時要刪除掉tomcat\work目錄下的中間編譯代碼才行;
控件及常用庫
WEB控件, 網上有一堆各種各樣的lib和控件, 但這些東西太浪費時間, 光是上網找就比較花時間了, 下回來試用也有各種各樣的問題,
每個控件有自己的特色, 而且每個總是滿足了這個,滿足不了那個需求, 要都滿足, 還是要收費的才行, 畢竟天下沒有多少免費的午餐;
主要有幾個:
1。數據顯示表格控件,應該能支持排序,有緩存機制,能分頁,能設置格式,支持ResultSet或ArrayList之類的,還要有導出excel等功能;最好要能簡單使用。
2。圖表控件,最有名的當然是cewolf/jfreechart,只是要使用它自己定義的DatasetProducer,不能直接使用ResultSet,也是個麻煩事,不過的確是很不錯的控件了。
小結
1。經過這次移植,發現JAVA還是有許多很牛的地方,采用hashmap來緩存數據,效率的確很不錯,只是用得太多,缺乏管理機制,有點混亂了,下一階段再重構一下,形成一個管理框架最好;
2。eclipse開發的確很不錯,與vs ide差別是比較大,只是使用習慣了之后發現其功能強大,而且可以找些plugin來擴展功能,估計我只是看到了點皮毛而已。
3。在JAVA下開發,使用Javascript太多,還沒找到更好解決辦法,水平有限;
4。與另一個人一起開發,大家的編程風格和代碼不夠規范,使用了一些重復的類和方法,這在后期維護是個工作,時間太緊,項目總是這樣,就沒得多少提高了;
個人水平實在有限,上面只是一面之詞,項目月底才結束,有什么變更再補充。