为web项目增加webservice
来源:互联网 发布:小李飞刀怀旧剧场源码 编辑:程序博客网 时间:2024/04/29 15:06
因项目要求,需要给一个已有web项目增加webservice功能,于是开始学习:
首先,通过一下几个资料学习了webservice:
1. 《MyEclipse5.5三分钟实现java访问公网.net webservice》
http://www.javaeye.com/post/309478
虽然是做个客户端,但是也有参考价值,尤其是为已有web项目增加webservice支持这方面
2.《用myeclipse实现webservice(上)》
http://blog.sina.com.cn/s/reader_4cac2a2f01000bdi.html
根据这个做了个演示程序,成功,很有参考价值
3.《VB6中如何使用C#开发的WebService进行开发》
http://www.cnblogs.com/wuhuacong/archive/2007/01/29/634003.html
用vb开发webservice客户端程序,需要安装配置SOAP Toolkit ,这个文档讲的足够了,但是程序编写方法和常规的不一样,不用学他的程序
4.《SOAP Toolkit User Guide》
安装完SOAP Toolkit 后会在“程序”里找到相关快捷方式
用vb开发webservice的客户端,有这个帮助文档足够了,根据这个做了个简单的客户端
以上学习过程在独立的tomcat5.5上完成,接下来在自己的项目上按照以上学习经验增加webservice,就没那么轻松了:
遇到的问题:
报错一:java.lang.NoClassDefFoundError: org/springframework/beans/factory/support/ReaderContext
原来在tomcat上运行没有问题的程序到项目所使用的jboss4.0.3上居然报错一堆:noclassfound。看起来是找不到spring的类,查了些资料,有人说xbean-spring.jar用2.8的就可以,结果到xbean网站上只见到最新的2.6没有发现2.8,无奈,只好寻找别的方法。
在spring的cvs中查找了spring项目的早期代码,都没有发现这个类
为排除可能性,下载了别的版本的jboss单独部署演示程序没有问题,于是在项目的jboss上将项目undeploy,演示程序运行成功(期间发现jboss启动应用是按照字母排序启动的哈)
非常不解,为什么不同的war包还会互相影响
怀疑与spring版本有关:
替换项目中的spring.jar为最新的2.5.5中的jar包,无效
替换项目中的spring.jar为xfire所使用的spring1.2.6.jar,无效
替换xfire中和项目中的的spring.jar为2.5.5中的jar包,无效
无意中,在xfire的最新发布包中发现有xbean-spring2.8.jar 替换后果然不再报这个错了,却报别的错:
报错二:java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name SomeServletName
最后看到这个:
(http://wiki.metawerx.net/wiki/Java.lang.IllegalArgumentException)
在web.xml查看了一下,果然是后一种情况,调整顺序后,不报这个错了,接着报下一个错:
报错三:Unrecognized xbean element mapping: beans in namespace http://xfire.codehaus.org/config/1.0
还好一下子就找到一篇文章说这个:http://www.blogjava.net/XXNiuLang/archive/2007/08/15/136952.html
不过遗憾的是,按照这个文章做,并没有解决我的问题
但在另外一篇文章中看到(http://www.jumpingbean.co.za/blogs/mark/xfire_spring_bug):Basically XFire needs an earlier version of spring to work. I ended up using spring 1.2.8 but I assume any spring version before 2.0 would work.
将项目中的spring包替换为xfire发布包中的1.2.6,哈,成功!
今天又做了几次试验,发现自己走了一些弯路,最后总结一下:
对于我们的项目,增加webservice的步骤应该如下:
1. 在myeclipse里增加webservice的支持(会自动配置web.xml并增加相应的xfire包)
2. 修改web.xml,使
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
出现在
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
之前。
注:可能因为我们web.xml不够规范的原因,自动增加的maping放在了servlet前面,会导致错误。
3. 将项目中的spring.jar删除,替换为xfire使用的spring.1.2.6.jar,至此,webservice和原有项目的共存问题得到解决
4.开始为项目增加webservice类,然后调用,成功。
- 为web项目增加webservice
- 为右键增加菜单项目
- 为项目增加ibatis支持
- 为项目增加log4j支持
- webservice(五) web项目发布webservice
- .net web项目 调用webService
- WebService:CXF发布Web项目
- Web项目调用webservice服务
- 转换为 web 项目
- 为Web应用增加Struts2支持
- 为eclipse增加web and JavaEE插件
- CXF-DOSGI为webservice增加用户名密码权限校验
- 为Cocos2d-x项目增加lua支持
- 动态定义webservice URL vs2005 web项目
- web 项目生成webservice 服务端 和 客户端
- 在java web项目中集成webservice
- mark-web项目端的webservice开发
- 在java web项目中集成webservice
- android 中管理短信
- 退票到底为啥扣费?
- Sqlite常见问题解答教程
- Meego touch基本控件介绍—Button篇
- SWFUpload V2.2.0 说明文档
- 为web项目增加webservice
- python3 用ceODBC 在windows下连接mysql
- vc中,unicode项目向多字节字符集项目移植.
- javascript开发常用工具,提高你的开发效率。
- xfire创建webservice
- Meego touch实现页面跳转和返回
- Javascript网页打印大全
- 基础_C# 委托
- 批处理:批量修改文件和文件夹权限