Axis开发WebService(一)

本文详细介绍如何使用Apache Axis 1.4在Java环境下搭建WebService服务。包括配置开发环境、编写服务端代码、部署服务以及生成客户端代码进行测试的过程。
一、配置开发环境

1、开发环境是Jdk1.6,Tomcat6.0,MyEclipse8.5
2、首先下载axis1.4,可以在http://xml.apache.org下载。
3、下载的axis压缩包解压后%AXIS_HOME%lib目录下的jar包,放到项目的/WEB-INF/lib目录下,我的项目名是WebService
4、Axis支持三种web service的部署和开发,分别为:
  (1)Dynamic Invocation Interface (DII)
  (2)Dynamic Proxy方式
  (3)Stubs方式
在这里只介绍Stubs方式,在工作中这种用得比较多。


二、代码开发
1、项目的web.xml文件添加以下内容:

  <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  </servlet>
 
  <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

2、服务端程序:Service.java
//这里先介绍传参是java中提供的String类型,以后会介绍传参是自定义的Object类型的。


package com.webservice.service;

public class Service {
    
    public Service() {    }

    public String doRequest3(String str){
        return str.toUpperCase();
    }

}
3、在项目的WEB-INF目录下,创建deploy.wsdd,其内容以下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
      
    <service name="CheckOrder" provider="java:RPC">  
        <parameter name="className" value="com.webservice.service.Service"/>  
        <parameter name="allowedMethods" value="doRequest3"/>      
    </service>  
</deployment>
其中<parameter name="allowedMethods" value="doRequest3"/>的value值为Service对外访问的接口,这个方法要是public的,如有多个方法用","隔开,如果想Service中所有public类型的方法都可以对外,可以写成:value="*"。

4、在项目(我的项目名为WebService)的WEB-INF目录下,创建deploy.bat,其内容以下:
set Axis_Lib=F:\JSPproject\WebService\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8000/WebService/services
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
执行这个批文件,用来生成server-config.wsdd。
5、将项目发布到Tomcat,启动Tomat,进入命令行,切换到deploy.bat的目录下,我的是F:\JSPproject\WebService\WebRoot\WEB-INF


执行deploy.bat,成功后显示:
Processing file deploy.wsdd
<Admin>Done processing</Admin>

这时,你在%TOMCAT_HOME%webapps\WebService\WEB-INF下多了server-config.wsdd。
6、生成客户端并测试程序
在项目的WEB-INF目录下创建WSDL2Java.bat文件,其内容以下:

set Axis_Lib=F:\JSPproject\WebService\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=F:\JSPproject\WebService\src
set Package=com.webservice.client
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o %Output_Path%  -p %Package% http://localhost:8000/WebService/services/CheckOrder?wsdl
其中Output_Path是客户端程序的包路径,

保持Tomcat启动着,命令行切换到WSDL2Java.bat的目录下,执行WSDL2Java.bat,执行完后,刷新下项目的src,你会发现多了包com.webservice.client,包下有CheckOrderSoapBindingStub.java,Service.java,ServiceService.java,ServiceServiceLocator.java。

好了,现在可以测试WebService,程序以下:
package com.webservice.test;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import org.junit.Test;

import com.webservice.client.ServiceService;
import com.webservice.client.ServiceServiceLocator;
import com.webservice.client.Service;

public class WebServiceTest {

@Test

  public void test3() throws ServiceException, RemoteException{

  ServiceService serviceService = new ServiceServiceLocator();

  Service service = serviceService.getCheckOrder();

  String str = service.doRequest3("lam");

  System.out.println(str);

}

}
执行后出现:LAM.

好了,简单的WebService成功了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值