当前位置: 代码迷 >> Web前端 >> 基于AXIS的web service项目环境筹建
  详细解决方案

基于AXIS的web service项目环境筹建

热度:139   发布时间:2012-10-30 16:13:36.0
基于AXIS的web service项目环境搭建

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

?

  相关解决方案