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

采用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);
            }

    }

分享到:
评论

相关推荐

    Axis2创建web service快速入门

    Axis2创建web service快速入门

    MyEclipse7.0创建基于Axis的Web service

    通过该实验将掌握配置MyEclipse7.0的axis Web Service的开发环境,通过Top-Down方式创建、发布基于axis Web Service的基本步骤,进一步加深学生对XML、WSDL、SOAP等Web Service概念的理解。

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

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

    用Axis2创建Web Service

    Axis2创建WebService,有详尽介绍,还有附图,本人进行过测试,可以使用

    helios创建Web Service服务(axis2)

    helios创建Web Service服务

    Axis+MyEclipse6.0+Tomcat5.0开发Web Service实例总结

    Axis+MyEclipse6.0+Tomcat5.0开发Web Service实例总结

    Spring Web Service实例

    Spring Web Service是Spring社区基于Spring提供的一个关注于创建”文档驱动”的Web Service的模块, 它的主要目标是方便基于”契约优先”(Contract-First)的SOAP服务的开发. 好像没有多少人讨论, 大多数的话题都是...

    在Eclipse中创建基于Axis2的web services

    3. 创建web工程 1). 建立一个 JavaProject 命名为 ws ,将 axis2 用户库加入到 build path 中。 2). 现在开始编写要发布的 WebSevice ,在 src 中建包 briup ,建立 Hello 类如下 Package pkg.service; public ...

    如何使用Axis_CXF创建WS服务

    使用axis和CXF实现web service的说明文档。

    Axis2运行环境1

    1. axis2-1.1.1.rar中包含工程中所需的axis2的类包。 2. axis2.war是打包好的web应用。用于放在Tomcat中,当运行Tomcat后会自动解压。...具体的部署步骤和使用请参照《(原创)用Eclipse + Axis2+Tomcat创建Web Service》

    Axis2运行环境2

    1. axis2-1.1.1.rar中包含工程中所需的axis2的类包。 2. axis2.war是打包好的web应用。用于放在Tomcat中,当运行Tomcat后会自动解压。...具体的部署步骤和使用请参照《(原创)用Eclipse + Axis2+Tomcat创建Web Service》

    Developing Web Services with Apache Axis2

    这是最好的手把手教会你怎么去创建web service应用

    axis2-1.6.2

    Axis2创建WebService实例所需要的bin压缩包和war压缩包

    Apache Web Service(JAVA 必看)

    Woden项目是Apache Web Services项目演化而来的一个子项目,主要用来开发用于读/写、操作、创建WSDL文档的Java类库,在初始阶段支持WSDL2.0,但是随着开发的继续,将会支持各种版本的WSDL。 Woden主要包含了两部分...

    java SOAPHEADER的web service

    c# JSON返回格式的WEB SERVICE//www.jb51.net/article/16768.htm我这里是利用axis创建类包的,首先下载axis的压缩包,然后解压,把axis放到webapp下面。如果可以运行,就OK了。 c#创建的webservice自带的wsdl的,...

    基于SOAP和Axis2的Web服务设计与实现

    Web Service作为SOA(Service Oriented Architecture)的最好实现...介绍了Web服务框架以及支撑Web服务的WSDL、SOAP、Axis2和JUDDI等相关理论知识,通过设计与实现一个例子来阐述Web服务创建、发布、查找和调用的整个过程.

    编程入门_Eclipse教程

    3. 编写Web service程序 10 3.1. Axis2的简单WebService示例 10 3.1.1. 0配置POJO的Webservice 10 3.1.2. 用axis2的辅助工具发布、调用WebService 12 3.1.3. WebService会话Session的管理 24 3.1.4. 用Spring创建的...

    解决异构系统的通信和整合

    在TOMCAT-HOME/webapps/axis下创建MyMath.jws文件

    Java实现webservice实例

     一:首先创建个WEB工程,然后: http://ws.Apache.org/axis/网站下载Axis安装包.当然还依赖其他包的,我这里在附件里上传了所有应用到得包,方便大家。  二:然后写wsdd 文件(注:其实这里真的不用,可以跳过第...

Global site tag (gtag.js) - Google Analytics