精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-03
最后修改:2009-04-04
今天搞了一天的webservice 整合,在文章开始之前发发牢骚,呵呵,公司现在这个项目由于三年之前就已经做好的产品,用的开发环境是jdk1.4,weblogic8.1的,框架基本上没有,就是使用了一个ibatis框架,都还是很早以前的版本,其他的大多数都在jsp页面中嵌入java代码,这样的开发环境很不习惯,框架都很陈旧,但是没有办法,现在多数的产品都已经在使用,我们只能在这基础上进行一些修改,再说了,我才到这家公司一个多月。 没有接触过webservice,网上找了找资料,很顺利的配了个在tomcat6+jdk1.6的环境下跑了起来(实例见另外一篇文章) ,于是信心满满的想把这个测试用例放到公司项目中跑起来,但是问题就来了,DTD解析异常,结果找了N多的网上资料,虽然花了很多的时间在找问题,但是还是有收获的。整理一下,方便自己方便大家。 由于公司使用的是weblogic8.1的版本,只支持jdk1.4和servlet2.3的规范,在web.xml的配置文件中需要将Myeclipse6.5工具默认生成的 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 改成 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 这时在weblogic8.1中启动服务时就不会报DTD的xml文件解析错误了,然后将网上下载的xfire有关的jar包也有可选包,必须的jar包如下:
导入lib中,启动weblogic服务时,又报QName异常,结果到官方网站又去下了个QName.jar包,解压后把qname.class文件覆盖到weblogic路径 d:\bea\weblogic81\server\lib中有个weblogic.jar包,解压后可以看到javax.xml.namespace文件夹下也有个QName.class,我把这两个class反编译后看到原来weblogic.jar中的这个类的放在QName.jar包中都有,所以我就把QName.jar包中的QName.class覆盖过去,结果QName Exception排除,呵呵! 同时在Xfire1.2.6类中有依赖到spring包中的类,所以xfire还需要spring-1.2. 6和xben-spring-2.8的jar包,不然会报springframework的异常错误,因为services.xml文件中节点的读取需要依赖spring。 之后再启动weblogic还是报错,还是说springframework的异常,在service.xml文件中找不到节点中的类,这个需要在Myeclipse中将选中项目->右键选中properties->Java compiler->如果compiler compliance level没有选中1.4(因为在Myeclipse6.5中默认的选择是5.0),把它选择为1.4,编译重启weblogic就不会出错啦! 搞了一天的问题其实不多,但是过程可以让自己收获良多,在寻找一个问题的同时本身就学到了由问题引发的关联知识!不过最好还是不要像公司这样搞个版本问题,不是程序本身不能用,大多数的时间花在这边寻找版本兼容配置上,开发的时间就没有多少啦!再说了,我们也不是框架的开发者,框架发布时就有说明支持jdk的版本号了,不能用的话,难不成我们还去重新开发个适合老版本的webservice的框架?显然时间花在这上面有点亏大了,还是比较喜欢新版本的东西,虽然有人说旧的东西比较稳定,各位晚安!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2268 次