基于Eclipse、Tomcat、Axis开发WebService简单实例

本文介绍如何使用Axis在Java中发布WebService。步骤包括搭建环境、编写简单服务类、配置部署文件等,并提供测试方法确保服务正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.首先建一个web工程,在buildpath里加入axis的相关包。(笔者推荐spring-framework-2.0.8-with-dependencies.zip里面几乎包含了java开发所能用到的所有的包。)

2.写一个最简单的java类,其中sayHello就是要发布的方法。

public class WebServiceTest {
    public String sayHello(String name) {
        return "Hello "+name+"!,this is an axis service.";
    }
}

3.编写server-config.wsdd文件描述要发布的方法,放在web-inf目录下。

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <handler type="java:org.apache.axis.handlers.http.URLMapper"
        name="URLMapper" />
    <service name="SayHello" provider="java:RPC">
        <parameter name="className"
            value="qw.webservice.WebServiceTest" />
        <parameter name="allowedMethods" value="sayHello" />
    </service>
    <transport name="http">
        <requestFlow>
            <handler type="URLMapper" />
        </requestFlow>
    </transport>
</deployment>

4.配置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>/services/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
    </servlet-mapping>

5.用eclipse将工程部署到tomcat下,启动,如果报类没有定义那就是缺包,添加即可。

6.测试一下服务是否发布成功。在浏览器地址栏输入http://localhost:8080/WebService/services,其中 WebService是我的工程的名字,根据需要修改。页面应该显示我们发布的服务如下,点击wsdl链接还能显示自动生成的wsdl文件的内容。

And now... Some Services

7.写客户端程序验证服务是否运行正常。

import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
public class Test {
    public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException {
        String endpoint = "http://localhost:8080/WebService/services/SayHello";
        Service service = new Service();
        Call call = (Call) service.createCall();
        call.setTargetEndpointAddress(new java.net.URL (endpoint));
        call.setOperationName("sayHello");
        String res=(String)call.invoke(new Object[]{"qw"});
        System.out.print(res);
    }
}

如果打印出Hello qw!那么恭喜你,你的第一个webservice发布成功了。

8.实际使用时,根据wsdl文件使用ant或axis提供的工具自动生成客户端类,然后使用,而不是用上面的方式,好处是采用上面的方式使用有时在序列化时会产生bug。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值