一.Web服务
Web服务是一种新型的Web应用程序。不同于其他Web应用程序,它是自适应、自我描述、模块化的应用程序,并可以跨越Web进行发布、定位以及调用。简单的Web服务可以提供例如天气预报或者航班信息的服务。一旦部署了Web服务,其他的应用程序就可以发现和调用所部署的服务。
二.AXIS项目
AXIS是开发web service的基础框架,来自Apache开放源代码组织。AXIS是基于JAVA语言的最新的 SOAP 规范(SOAP 1.2)和 SOAP with Attachments 规范(来自 Apache Group )的开放源代码实现。有很多流行的开发工具都使用AXIS作为其实现支持Web服务的功能,例如JBuilder以及Eclipse WTP等。目前版本是2.0。本文使用的版本是1.4。
三.环境搭建
1. 安装JDK1.4.1
2. 安装Tomcat 5.5.27
3. 下载Eclipse wtp-all-in-one-sdk,(地址:http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R2.0/R-2.0-200706260303/wtp-all-in-one-sdk-R-2.0-200706260303-win32.zip,并解压到本地。
四.Web service服务程序开发
1. 运行Eclipse WTP工具,选择菜单【File】->【new】->【project】 弹出new project对话框
选择【Dynamic Web Project】点击下一步
2. 在new Dynamic Web Project对话框中填入工程名【Project name】,【target runtime】选择apache tomcat v5.5,点击【Finish】。
3. 创建的工程目录结构如下:
4. 选择【Java Resources:src】,右击选择【new】->【Class】,弹出新建类对话框,创建服务类com/Test.java。
5. 为Test.java添加方法sayHello。
6. 选择【Test.java】右击弹出菜单,选择【web services】->【create web service】
7. 弹出web service对话框,勾选【Publish the web service】,点击下一步,填入wsdl文件名,勾选sayHello(java.lang.String)方法,点击完成。
8. 启动tomcat服务器。
9. 测试web服务。打开浏览器,在地址栏中输入:http://localhost:8080/mywstest/services/Test ,看到的响应内容如下:
10. web service工程的创建和发布大功告成!
五.Web service客户端测试程序开发
1. 运行Eclipse WTP工具,选择菜单【File】->【new】->【project】 弹出new project对话框
选择【Dynamic Web Project】点击下一步
2. 在new Dynamic Web Project对话框中填入工程名【Project name】,【target runtime】选择apache tomcat v5.5,点击【Finish】。
3. 选择工程【client】右击弹出菜单,选择【New】->【Other】
4. 在New对话框中选择【Web Service Client】,点击下一步。
5. 在【Web Service Client】对话框中点击【Browse】选择server工程中的wsdl文件,点击ok返回到【Web Service Client】对话框。将对话框中的图像左侧的拉杆拉到顶端,使图像顶部文本显示为【Test client】,然后点击下一步、下一步。
点击【start server】启动web服务器,然后点击下一步。
在对话框中勾选方法getString(java.lang.String),点击完成。
6. 创建的client工程目录结构如下:
7. 打开IE浏览器,在地址栏中输入:http://localhost:8080/client/sampleTestProxy/TestClient.jsp,显示页面内容如下:
8. 测试web服务。在浏览器中输入字符串“chinapnr”,返回结果“hello chinapnr”,测试成功。
Web Service 目前主要框架是Apache 的 CFX和 AXIS, 但AXIS可以在java, C, C++语言下使用. Eclipse IDE
只支持XFIRE( CFX的前身 ), 不支持AXIS;所以我用Eclipse WTP工具在Tomcat server下生成 Web Service的服务端配置文件,然后import到MyEclipse下的web应用程序中,即可实现在MyEclipse下应用AXIS框架的Web Service了.
具体移植步骤如下:
1 将web service 服务端的/WebContent/WEB-INFO/lib下的jar包copy到MyEclipse下的web应用程序 的 /WebRoot/WEB-INFO/lib下(注意commons-logging.jar不要覆盖),/WebContent/wsdl目录, /WebContent/WEB-INFO/server-config.wsdd和web.xml中的servlet配置 copy到MyEclipse的/WebRoot下的对应位置;
2 将web service 服务端的对外发布的类(包含类所属的包)copy到MyEclipse工程的相应位置.
3 如果什么时候发现在Tomcat下用的好好的,但是放到weblogic下就出了问题,那么多半在\WEB-INF\weblogic.xml添上下面的设置就会好的,否则会报错:
org.apache.axis.transport.http.AdminServlet' doesn't have a default constructor
需在weblogic.xml添加的配置:
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>