微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservice-axis

webservice~axis

一.准备工作:

1. 安装axis。去官方网站http://ws.apache.org/axis/下载axis包,然后解压到任何一个目录。本例使用的是axis-bin-1_4.tar.gz ,解压到E:\axis-bin-1_4\axis-1_4

2. 开发环境准备。本例使用MyEclipse6.0 java j2ee 1.4库,web servertomcat6

二.创建web工程:

1. MyEclipse中新建web工程,名称testAxis。工程目录为:D:\JavaProject\testAxis

2. testAxis部署到tomcat

3. 引入axis包: axis目录下的E:\axis-bin-1_4\axis-1_4 \lib\下的所有jar包拷贝到工程下面的Webroot\WEB-INF\lib下,myelipse自动添加到引用库:

4. 修改web.xml:如果没有特殊情况,最简单的方法就是用axis解压包中的web.xml直接替换testAxis工程的web.xml。例如本例,就用E:\ \axis-bin-1_4\axis-1_4\webapps\axis\WEB-INF\web.xml替换工程testAxis下的web.xml

三.创建webservice

1. 在工程testAxis里新建要实现方法的接口:本例新建sayHelloToCkp.java,放在com.ckp包中。

package com.ckp;

public interface sayHelloToCkp {

public String sayHello ();

}

2. 把该类生成wsdl文件

Axis里有一个Java2WSDL方法,用于把java生成wsdl。当然你可以写命令行手动执行这个方法。这里讲下使用MyEclipse来运行这个方法

sayHelloToCkp.java文件上右键,Run As——》Open Run Dialog:

弹出窗口,新建一个configuration,下图1处,然后

Main选项卡中的main class 输入:

org.apache.axis.wsdl.Java2WSDL

Arguments选项卡中的program arguments输入,如下图

-o ckp.wsdl

  -l "http://localhost:8080/testAxis/services/ckp"

  -n "urn:ckp"

  -p"com.ckp" "urn:ckp"

com.ckp.sayHelloToCkp

然后点击Run。会在工程目录D:\JavaProject\testAxis生成ckp.wsdl文件

3. wsdl生成服务类

axis里面有WSDL2Java方法(Java2WSDL相反),用于把wsdl文件生成java service类。当然你还可以写命令行手动执行这个方法。这里讲下使用MyEclipse来运行这个方法

同上,还是右键Run As——》Open Run Dialog,弹出窗口,新建configuration。这次使用

org.apache.axis.wsdl.WSDL2Java

参数是

-t -B -v -D -s -p com.ckp.server D:\JavaProject\testAixs\ckp.wsdl

如下图:

Run后,将在项目的根目录下生成相关的服务类、build.xmldeploy.wsdd,undesploy.wsdd等。我们把他们拷贝到工程里的src下即可(注意包的位置):

4. 服务的部署和生成server_config.wsdd

先启动tomcat,然后运行命令行cmd,到达web服务器里类和deploy.wsdd所在的目录,如本例的是c:\apache-tomcat-6.0.14\webapps\testAxis\WEB-INF\classes\com\ckp\server

执行如下命令:

java -Djava.ext.dirs=E:\axis-bin-1_4\axis-1_4\lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/testAxis/services/ckp?wsdl deploy.wsdd

前面的路径是axis解压路径里的lib路径,后面是未来的servicewsdl地址。

生成成功后,c:\apache-tomcat-6.0.14\webapps\testAxis\WEB-INF\下便可看到server-config.wsdd文件

5. 测试:

WebService的实现类CkpSoapBindingImpl.java添加如下代码

package com.ckp.server;

public class CkpSoapBindingImpl implements com.ckp.server.SayHellowToCkp{

public java.lang.String sayHello() throws java.rmi.remoteexception {

return "hello you";

}

}

重启tomcat,输入http://localhost:8080/testAxis/services 访问。

四.生成客户端:

有了WSDL文件,与生成服务器代码相同,只是参数不同,也是生成在项目根目录下:如下图:

注:本例中,如果不想保留原来的接口类sayHelloToCkp.java,完全可以在最开始时就把接口类放在com.ckp.server下,然后在第三步第3小步中,再把它覆盖。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐