由于項目需要用到Web Service,就采用了越來越火的CXF2.0??偟酶杏X是CXF2.0畢竟還是在Apache的孵化器中孕育,還沒有成熟,有很多不完善的地方。項目中采用CXF與Spring合用,比較簡單,CXF本身的配置文件就是Spring配置文件,所以集成起來比較方便。CXF也提供了很多Sample。
在開發中還是出現了一些問題,其中CXF用到了geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)
,官方說可以用JavaMail.jar替換,但是根本不行,因為geronimo-javamail_1.4_spec-1.0-M1.jar不僅僅是Mail相關的Class,還有別的Class。不僅如此,此jar還與JavaMail1.4.jar沖突,由于我們項目中采用JavaMail-1.4.jar發郵件,項目中同時引用了這兩個jar,在junit中測試OK,但在Tomcat啟動后就出現錯誤了,仔細跟蹤,發現兩種方式中發短信分別用到了這兩個jar,在junit中用的是javamail-1.4.jar,沒有問題。在tomcat中發郵件是用到的是geronimo-javamail_1.4_spec-1.0-M1.jar ,二兩者實現的不同,根本不像CXF所說的可以替換,而且geronimo-javamail_1.4_spec-1.0-M1.jar 中實現發郵件的機制跟javamail還有不同,仔細跟蹤,發現問題出現在Session中,
geronimo的javax.mail.Session中用到了屬性文件,它會把用戶設置的發短信的host改為localhost,這樣就會出現connect異常。最后把geronimo中的javax.mail中的所有class刪掉,測試發現發郵件和CXF Web Service 都OK。
另外,Web Service 的安全采用了密鑰公鑰機制,用keytool制作了鑰匙,在CXF Web Service 以及遠程訪問的Client中分別放置了jks文件。
posted on 2007-09-21 15:55
George Gong 閱讀(844)
評論(2) 編輯 收藏 所屬分類:
JAVA&&J2EE