由于项目需要用到Web Service,就采用了越来越火的CXF2.0。总得感觉是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 阅读(832)
评论(2) 编辑 收藏 所属分类:
JAVA&&J2EE