Axis实现 web service接口开发 + 客户端调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Axis实现 web service接口开发 + 客户端调用相关的知识,希望对你有一定的参考价值。

  看到网上挺多人找webservice axis开发案例,但是网上较多的都是有点乱,初学者不太容易看得懂,所以最近看到自己终于有了点空闲时间,就上传了一份比较简单的webservice axis的完整案例。

只适用于初学者。


一、新建一个web项目

  1. 导入lib包。


2.配置 web.xml 

  

<!-- axis 配置 -->
  <servlet>
        <display-name>Apache-Axis Servlet</display-name>
        <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>/services/*</url-pattern>
</servlet-mapping>

3.然后在项目中的src下创建包,再在包下创建一个类,用来提供web service接口。

package com;
public class HelloWorld {
    public String sayHello(String msg){
        if(null==msg || "".equals(msg)){
            return "您好!";
        }else{
            return "您好" + msg + "!";
        }
    }
    public int sayAge(){
        return 28;
    }
}

4.配置 server-config.wsdd文件。

<!-- deployment 表明这是一个axis部署描述文件 -->
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <!-- axis提供的一个web service服务。service标签中parameter allowedMethod用于指定一个以空格分隔的方法名,
                           只有这些方法可以通过web service访问。也可以将这个值指定为“*”表示所有的方法都可以访问。-->  
    <service name="axisEm" provider="java:RPC">  
        <!-- 指定类名 -->  
        <parameter name="className" value="com.HelloWorld" />  
        <!-- 类中允许访问的方法 -->  
        <parameter name="allowedMethod" value="*"></parameter>  
        <!-- 命名空间 -->
        <namespace>http://xml.apache.org/axis/wsdd/</namespace>
        <parameter name="scope" value="Application"/>
    </service>  
    <!-- 服务器端的传输方式. 指定处理器 -->  
    <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
    <transport name="http">  
        <requestFlow>  
            <handler type="java:org.apache.axis.handlers.http.URLMapper"/><!-- 引用上边的 -->  
        </requestFlow>  
    </transport>  
</deployment>

5.运行该项目,访问http://localhost:8080/axisTest/services/axisEm?wsdl

  如果报错,则返回项目检测配置是否有问题等,成功则会得到wsdl文档。

二、客户端调用

package com.test;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class webTest {
    public static void main(String[] args) {
        String _newendPoint = 
                "http://localhost:8080/axisTest/services/helloWorldService?wsdl";
        String _newNameSpace = "http://xml.apache.org/axis/wsdd/";
        try {
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(_newendPoint));
            call.setOperationName(new QName(_newNameSpace, "sayHello"));
            String s = (String) call.invoke(new Object[] { "st001" });
            System.out.println(s);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}


案例下载地址:http://down.51cto.com/data/2220274

本文出自 “海阔_星空” 博客,请务必保留此出处http://7852586.blog.51cto.com/7842586/1784070

以上是关于Axis实现 web service接口开发 + 客户端调用的主要内容,如果未能解决你的问题,请参考以下文章

新手Axis2 发布Web Service之路

我第一次接触webservice,怎么调用用web service接口,cxf或者axis2都行,网上找的例子,都有点错误

Web Service学习之一:Web Service几种框架

JAVA开发Web Service几种框架介绍

JAVA开发Web Service几种框架介绍

如何调用web service接口的某个方法