接上面2例:
http://blog.youkuaiyun.com/kunshan_shenbin/archive/2009/01/17/3817394.aspx
http://blog.youkuaiyun.com/kunshan_shenbin/archive/2009/01/17/3818735.aspx
虽然种种迹象表明,这个错误很有可能是CXF2.0.X版本的Bug,而且CXF2.1.X中并没有这个问题。
然而,只需要在客户端把cxf-2.0.9.jar包替换成cxf-2.1.3.jar即可正常运行让我感觉很是奇怪(说明cxf2.0.x和cxf2.1.x版本之间的差异并没有想象中的那么大,而且如果2.0.9真有bug,按理来说更应该优先替换服务端的jar包才对),而且记得在程序添加WS-Security之前并没有出现这种现象。
我们知道,JDK1.6对Web Service做了很大的改进(注意,JDK1.6的各个子版本之间的差异也很大,前面使用的是J2SE 1.6.0_10版本),说不定会对Web服务产生一些微妙的影响。在好奇心的趋势下,我试着把工程发布到JDK1.5上。
为了便于区分,我重新更改了工程名,分别设为J5CxfServer和J5CxfClient。代码沿用上2例中的代码,只对例如工程名称更改引起配置文件等做少量修改(例如:serverhost.properties等)。当然Jar包的变动比较大,贴图说明之。
JDK使用1.5.0_17,服务端和客户端均使用cxf-2.0.9。
服务端工程:
服务端Jar包
客户端工程:
客户端Jar包:
然而,当访问客户端程序时,发现程序运行正常。看来这个问题在JDK1.5.0_17并不存在,有可能是CXF2.0.9与JDK6不兼容引起的(JDK6扩展的WebService支持等等),呵呵。