一.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>
?