苏飞论坛
标题:
使用Axis开发Web Service程序
[打印本页]
作者:
Lese
时间:
2014-1-9 11:25
标题:
使用Axis开发Web Service程序
使用Axis开发Web Service
程序
一、
Axis
环境的安装
1
、安装环境
J2SE SDK 1.4
,
Tomcat 5.0
,
eclipse 3.2
。
2
、到
http://xml.apache.org
网站下载
Axis
安装包。
3
、将
Axis
相关包文件放在
WEB-INF\lib
目录下。
4
、
Axis
可选的包:
activation.jar
;
mail.jar
;
xmlsec-1.4.Beta1.jar
拷贝到
WEB-INF
目录下,生成客户端时候需要使用。
Axis
支持三种
web service
的部署和开发,分别为:
1
、
Dynamic Invocation Interface
(
DII
)
2
、
Dynamic Proxy
方式
3
、
Stubs
方式
前两种方式我就不介绍了,同事告诉我他们自己都不使用前两种方式,他们建议我们使用
Stubs
方式,因此我就主要就介绍一下第三种方式。注意,我自己的
Java
源代码是放在
D
:
\workspace\test\
目录下,
Axis
相关包文件放在
D
:
\workspace\test\WEB-INF
目录下。
二、编写
wsdd
发布
web
服务,编写
stubclient
访问
web
服务
1
、编写服务端程序
server
,
SayHello.java
,编译
server.SayHello.java
package server;
public class SayHello
{
public String getName(String name)
{
return "hello "+name;
}
}
2
、编写
wsdd
文件
deploy.wsdd
文件内容如下:
<deploymentxmlns="http://xml.apache.org/axis/wsdd/"xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SayHello" provider="java:RPC">
<parameter name="className" value="server.SayHello.getName"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
3
、发布服务:
编辑一个
deploy.bat
,
Axis_Lib
为
axis.jar
路径。内容如下:
set Axis_Lib=D:\workspace\test\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/test/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
执行这个批处理文件,这时候,如果提示成功的话,访问
http://localhost:8080/test/services
就会显示服务列表。
4
、生成客户端
client stub
文件
在浏览器上访问服务器端的服务,可以下载到
WSDL
文件,通过
Axis
的相关工具,可以自动从
WSDL
文件中生成
Web Service
的客户端代码。
编写一个
WSDL2Java.bat
文件,其内容如下:
set Axis_Lib=D:\workspace\test\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:\workspace\test\src
set Package=server.SayHello
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package%SayHello.wsdl
执行这个批处理文件就可以生成
client stub.
生成的
stub client
文件列表为:
SayHello.java
,
SayHelloService.java
,
SayHelloServiceLocator.java
,
SayHelloSoapBindingStub.java.
5
、编写客户端程序,编译并执行
下面是一段
junit
测试客户端代码。
import java.net.URL;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class TestWSClient extends TestCase {
public TestWSClient(String string) {
super(string);
}
public void SayHelloClient() throwsException {
SayHelloServiceservice = new SayHelloServiceLocator();
SayHello_PortType client =service.getSayHello() ;
String retValue =client.getName("clientname");
System.out.println(retValue);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(newTestWSClient("SayHelloClient"));
return suite;
}
}
至此,整个服务器端和客户端的
Web Service
框架代码就完成了,剩下的就是在里面加入你的业务代码了,怎么样,
Web Service
并不难开发吧。
欢迎光临 苏飞论坛 (http://www.sufeinet.com/)
Powered by Discuz! X3.4