Axis开发webservice的简单实例

本文主要记录Axis开发webservice简单实例的详细过程和步骤:
Axis官方网站:http://ws.apache.org/axis/
可以在官网下载最新1.4的包:axis-bin-1_4.zip
将解压后的axis-1_4\webapps\下的axis目录考到%TOMCAT_HOME%/Webapps/目录下
启动tomcat后在浏览器里输入http://localhost:8082/axis会看到下图所示(ps:本人的tomcat端口为8082


点击上图中的Validataion链接,页面上会提示已经有的包和缺少的包的信息,根据提示将必须的包下载全,将这些类包复制到 %tomcathome%/webapps/axis/WEB-INF/lib/目录下重新启动tomcat,直到Validation页面中看不到有Error与Warning的提示信息。

如果提示缺少xmlsec.jar(附件提供下载)可以到 http://santuario.apache.org/download.html下载.

Axis支持三种web service的客户端访问方式,分别为:

  • Dynamic Invocation Interface ( DII)
  • Dynamic Proxy方式
  • Stubs方式

PS:看到很多资料将上述方式列为Web Servcie的三种“部署和开发方法,个人觉得有些欠妥

下面介绍axis部署和发布web service的方式:

  • JWS -即时发布
  • WSDD – 定制发布

一、JWS

JWS(Java WebService)是最简单的一种方式。Axis允许把普通Java类的源文件的扩展名改为.jws,然后把它简单的copy到AXIS_HOME下。这
样,Axis 会自动编译.jws文件,并把它自动加入到Java Web Servie的服务中。非常简单和灵活,但是这种方式的缺点是:只能是java源代码,同时类中不能含有包名。具体过程如下

1.用Eclipse或者文本编辑器编写一个java类SayHello.java(此类不含包名)

2.将上面的类(SayHello.java)copy到%tomcat_home%/webapps/axis/目录下,只需要把类的源文件(不是class)到这个目录下,重命名为:SayHello.jws

3.打开浏览器输入:http://localhost:8082/axis/SayHello.jws 会看到:


点击上图Click to see the WSDL 的链接,就可以看到生成的wsdl。

4.客户端Dynamic Invocation Interface ( DII)方式 实现如下:

5.客户端Dynamic Proxy方式 实现如下:

二、WSDD(Web Service Deployment Descriptor)文件发布Web Service

1.自定义参数bean和server的代码如下:

2.deploy.wsdd和undeploy.wsdd文件的编写如下:

deploy.wsdd 文件如下:

WSDD文件描述可参见:http://www.oio.de/axis-wsdd/

undeploy.wsdd文件如下:

3.将上面写好的两个类的class文件复制到%tomcat_home%/axis/WEB-INF/class/目录下,完整的目录结构复制过来,然后在把两个wsdd文件复制到%tomcat_home%/axis/WEB-INF/目录下,打开控制台进入%tomcat_home%/axis/WEB-INF/目录下:

>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -p 8082 deploy.wsdd 

-s  参数指定了AxisServlet所在的应用程序路径
>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -p 8082 -s /axis/servlet/AxisServlet deploy.wsdd 

-l  参数指定目标应用的URL
>java -Djava.ext.dirs=lib
org.apache.axis.client.AdminClient
–lhttp://localhost:8082/axis/services/MessageService deploy.wsdd

这个命令就是发布这个服务,发布成功后在控制台下会有提示:

Processing file deploy.wsdd
<Admin>Done processing</Admin>

同时发布后会在%tomcat_home%/axis/目录下,多了一个server-config.wsdd文件.
在浏览器输入:http://localhost:8082/axis/services/MessageService会看到下图:


4.client的生成方法:

打开控制台进入%tomcat_home%/axis/WEB-INF/目录下:

>java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -p client http://localhost:8082/axis/services/MessageService?wsdl

会在当前的目录下生成client文件夹,这个目录里文件就是客户端源码。

5.通过WSDD文件卸载发布的webservice:

打开控制台进入%tomcat_home%/axis/WEB-INF/目录下:
>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient undeploy.wsdd

如果不是默认8080端口需要加上参数-p:
>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -p 8082 undeploy.wsdd

PS:java -Djava.ext.dirs=lib 也可以用java -cp “lib\*”

6.客户端Stubs方式实现如下:

 

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/soa/webservice/axis-ws-demo/

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">