一、使用Axis开发WebService接口,第一步找到所需的jar架包:
1、axis-ant.jar
2、axis.jar
3、commons-discovery-0.2.jar
4、 commons-logging-1.10.4.jar
5、jaxrpc.jar
6、log4j.jar
7、saaj.jar
8、wsdl4j.jar
二、新建一个Web工程,名称为WebServiceProject,导入上面的jar包;
三、在web.xml中加入Axis配置,代码如下:
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEweb-app PUBLIC "-//SunMicrosystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
<welcome-file-list>
</welcome-file-list>
</web-app>
访问 http://127.0.0.1/WebServiceProject/services,
应显示当前可用的web service
四、新建接口类,以及在接口中定义功能实现的方法,如下所示:
package com.service;
importcom.bean.UserBeanResponse;
importcom.bean.UserBeanRequest;
publicinterface UserLoginBO{
publicUserBeanResponse checkUserLogin(UserBeanRequestin0);
}
五、在axis.jar架包中找到org.apche.axis.wsdl.Java2WSDL类,设置参数为:
-l"http://127.0.0.1:7001/WebServiceProject/services/Myservice"com.service.UserLoginBO
其中:-l选项用于指定webservice的地址,com.service.UserLoginBO指的是你所定义的接口。Myservice是访问接口的名称,运行成功后,刷新项目,在项目的根目录下获得一个Myservice.wsdl文件。
把项目部署到web服务器中,启动服务
六、运行axis.jar里面的org.apche.axis.wsdl.WSDL2Java生成客户端,在参数选项中使用形如-S false Myservice.wsdl,其中-Sfalse表示生成deploy.wsdd和undeploy.wsdd文件以及实现类。最后的参数表示步骤上一步生成的wsdl的名字,本例中为Myservice.wsdl,如果要指定生成文件的目录,加上“-o生成文件目录”参数(但是它不影响包结构),刷新项目,把生成的接口类和实现类拷贝到原接口类所在目录,覆盖旧的接口类,把生成的deploy.wsdd和undeploy.wsdd文件拷贝到项目的根目录下,本项目生成的接口类包括:
服务端UserLoginBO.java UserLoginBOService.javaLoginServiceSoapBindingI
客户端UserLoginBO.java UserLoginBOService.javaUserLoginBOServiceLocato
完服务端接口实现类的具体实现(LoginServiceSoapBindingI
七、运行axis.jar里面的org.apache.axis.client.AdminClient,在参数选项中使用-lhttp://127.0.0.1:7001/MyAxis/services/AdminServicedeploy.wsdd其中-l用于指定AdminService的URL,最后一个参数指定deploy.wsdd的路径,运行AdminClient后,deploy.wsdd的内容会被加入server-config.wsdd。如果server-config.wsdd不存在则会自动创建。
八、然后把项目部署到服务器中,使用http://127.0.0.1:7001/WebServiceProject/services地址访问,如果面页中出现第三个wsdl服务,说明部署成功;
九、新建客户端项目,把jar包导入,把第六步生成的客户端类和javaBean拷贝过来,然写一个java类进行调用,具体实现如下:
packagecom.service;
importjava.rmi.RemoteException;
importjavax.xml.rpc.ServiceException;
importcom.bean.UserBeanRequest;
importcom.bean.UserBeanResponse;
public class ClientClass{
}