`
zygtp
  • 浏览: 8863 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

采用axis创建web service

阅读更多

采用axis创建web service
1.安装axis,下载axis,将saaj.jar,jaxrpc.jar,axis.jar,commons-discovery-0.2.jar,
 commons-logging-api.jar,log4j-1.2.8.jar,wsdl4j-1.5.1.jar,activation.jar,
 mailapi.jar文件复制到tomcat的common\lib下,并加到classpath中
2.编写webservice服务
public class smsServer {

    public int Send(Message msg)
    {
     ...
    }
    public Message[] Recv()
    {
       ...
    }
    public SendState[] CheckSate(String SubmitIDs)
    {
        ...
    }
}
   
3.编写wsdd发布
 先编写wsdd文件,然后执行java org.apache.axis.client.AdminClient -lhttp://localhost:8080/SXDL_SMS/services/AdminService deploy.wsdd发布生成server-config.wsdd文件
4.生成wsdl
 java org.apache.axis.wsdl.Java2WSDL -oWebsms.wsdl -lhttp://localhost:8080/SXDL_SMS/services/ -nWebsms zxsms.webservice.smsServer  
5.生成客户端文件
 java org.apache.axis.wsdl.WSDL2Java Websms.wsdl -p zxsms.webclient
6.客户端注册自定义结构,由于我采用的是自定义接口,因此客户端需要注册示例如下
    public int send(zxsms.webclient.Message msg) throws java.rmi.RemoteException {
        if (super.cachedEndpoint == null) {
            throw new org.apache.axis.NoEndPointException();
        }
        org.apache.axis.client.Call _call = createCall();
        javax.xml.namespace.QName qn=new javax.xml.namespace.QName("MessageBean", "MessageBean");
        _call.registerTypeMapping(Message.class, qn,               
                new org.apache.axis.encoding.ser.BeanSerializerFactory(Message.class, qn),       
                new org.apache.axis.encoding.ser.BeanDeserializerFactory(Message.class, qn));
        _call.setOperation(_operations[0]);
        _call.setUseSOAPAction(true);
        _call.setSOAPActionURI("");
        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
        _call.setOperationName(new javax.xml.namespace.QName("Websms", "Send"));

        setRequestHeaders(_call);
        setAttachments(_call);
 try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {msg});

        if (_resp instanceof java.rmi.RemoteException) {
            throw (java.rmi.RemoteException)_resp;
        }
        else {
            extractAttachments(_call);
            try {
                return ((java.lang.Integer) _resp).intValue();
            } catch (java.lang.Exception _exception) {
                return ((java.lang.Integer) org.apache.axis.utils.JavaUtils.convert(_resp, int.class)).intValue();
            }
        }
  } catch (org.apache.axis.AxisFault axisFaultException) {
  throw axisFaultException;
 }
}
其中下列代码是手工添加的 
        javax.xml.namespace.QName qn=new javax.xml.namespace.QName("MessageBean", "MessageBean");
        _call.registerTypeMapping(Message.class, qn,               
                new org.apache.axis.encoding.ser.BeanSerializerFactory(Message.class, qn),       
                new org.apache.axis.encoding.ser.BeanDeserializerFactory(Message.class, qn));
        javax.xml.namespace.QName qn=new javax.xml.namespace.QName("SendStateBean", "SendStateBean");
        _call.registerTypeMapping(SendState.class, qn,               
                new org.apache.axis.encoding.ser.BeanSerializerFactory(SendState.class, qn),       
                new org.apache.axis.encoding.ser.BeanDeserializerFactory(SendState.class, qn));
7.客户端测试
    public static void main(String[] args) {
        try{
            SmsServerService service = new SmsServerServiceLocator();
           
            SmsServer_PortType smsclient = service.getsmsServer();
     //身份认证
            ((org.apache.axis.client.Stub)smsclient).setUsername("001");
            ((org.apache.axis.client.Stub)smsclient).setPassword("001");
           
            Message sms=new Message();
            sms.setTo("13001430090");
            sms.setContent("zyg webservice 短信 测试");
            sms.setFormat(15);
           
            long id=smsclient.send(sms);
           
            System.out.println("submitid="+id);
           
           

            } catch (Exception e) {
            System.err.println("Execution failed. Exception: " + e);
            }

    }

分享到:
评论

相关推荐

    Axis开发Web Service实例

    本文将详细介绍如何使用Apache Axis创建Web Service,并将重点介绍三种不同的方法:动态调用接口(Dynamic Invocation Interface,DII)、Stubs方式和动态代理(Dynamic Proxy)方式。 #### 二、环境搭建与配置 在...

    用Axis2创建Web Service

    【Apache Axis2 创建 Web Service 知识点详解】 Apache Axis2 是一个强大的 Web Service 框架,由 Apache 软件基金会开发,主要用于构建和部署高性能、高效率的 Web Services。它基于 Java 语言,提供了全面的 Web ...

    axis2 web service完整教学

    2. **创建Web Service**:对着`HelloWorld`类右键选择`Web Services > Create Web Service`,配置运行时为Axis2,服务器为之前创建的Server,按照提示完成操作。 **验证服务** 1. **查看服务状态**:访问`...

    基于Axis的Web Service客户端调用

    而Apache Axis是Java平台上的一个开源工具,专门用于创建和部署Web Service。本篇将详细介绍如何使用Axis来实现Web Service的客户端调用。 首先,我们需要理解Web Service的基本概念。Web Service基于SOAP(简单...

    AXIS开发Web Service.docx

    AXIS 是 Apache 开源项目提供的一款强大的 Web Service 引擎,用于开发和部署 Web Service。在本文中,我们将深入探讨如何使用 AXIS 在 Tomcat 6.0.26 上进行配置,并详细介绍三种部署和调用 Web Service 的方法:...

    Axis2创建web service快速入门

    本教程将引导你快速入门,掌握使用Axis2创建Web服务的基本步骤。 **一、了解Axis2** Axis2是Axis1的下一代产品,它提供了更强大的功能和更高的性能。Axis2基于模块化架构,支持多种传输协议(如HTTP、HTTPS、SMTP...

    Axis2 Web Service 开发教程

    【Axis2 Web Service 开发教程】是一份详细指导开发者如何使用Apache Axis2框架创建和部署Web服务的教学资料。Apache Axis2是Java世界中一个强大的Web服务引擎,它提供了高效的性能和灵活的架构,使得Web服务的开发...

    axis开发web service程序

    **Apache Axis** 是一个用于构建 Web Service 的开源框架,提供了简单易用的方式来创建和部署 Web Service。Axis 支持多种版本,其中 Axis1.x 和 Axis2.x 最为常见,Axis1.x 相较之下更加稳定。 - **下载所需组件**...

    使用Axis开发Web Service程序

    接下来,我们来看一个具体的示例,演示如何使用Axis创建一个简单的Web Service。 1. **定义服务接口**:首先定义一个简单的Java类`SayHello`,该类包含一个方法`getName`用于返回问候语。 ```java package ...

    eclipse 生成 Axis2 Web Service 客户端

    本文将详细介绍如何在Eclipse开发环境中创建基于Axis2的Web Service客户端。Axis2是Apache组织下的一个开源项目,它提供了一种用于构建服务端和服务客户端的高性能、完全可扩展的框架。对于希望在Java平台上开发和...

    (原创)用Eclipse + Axis2+Tomcat创建Web Service

    (熬夜做成,希望多多看看,有一处错误,把单词wapper改为webapps,敬请原谅) 目录大纲: ...三、 Web Service 客户端的创建。 3.1 创建WSDL文件。 3.2 利用WSDL创建stub。 3.3 利用stub类测试服务。

    Axis开发Web Service的实例

    ##### 3.1 创建Web服务 1. **定义服务接口**: ```java public class HelloClient { public String getName(String name) { return "hello " + name; } } ``` 这里定义了一个简单的`HelloClient`类,其中...

    AXIS Web Service入门及应用

    1. 创建Web服务:你可以使用AXIS提供的wsdl2java工具,根据WSDL(Web服务描述语言)文件自动生成Java源代码。这将为你提供一个服务接口和服务实现模板。 2. 实现服务:在生成的服务实现类中添加业务逻辑,使Web服务...

    用axis2开发web service

    - 需要安装Axis2的自动代码生成插件,以便在Eclipse中创建Web服务。 - 创建一个新的Java项目,如`HelloWorld`,并在项目中定义一个包`cn.xupt.edu.soa`,以及一个名为`HelloWorld`的类,该类包含一个方法`sayHello...

    Axis开发Web Service程序教程

    【标题】: "Axis开发Web Service程序教程" 【描述】: "本文旨在引导读者通过AXIS框架体验Web服务的开发流程,适合已有Web服务基础的Java、XML开发者学习。" 【标签】: "axis webservice soap java" 【内容】: ...

    axis2 webservice for myeclipse插件Axis2_Service_Archiver_1.3.0

    通过集成Axis2 Service Archiver插件,开发者可以直接在MyEclipse环境中创建和发布基于Axis2的Web服务,而无需离开IDE去处理复杂的命令行操作或手动配置。 描述中提到的使用方法非常直观:将解压后的Axis2_Service_...

Global site tag (gtag.js) - Google Analytics